Plugin Directory

Changeset 2340421


Ignore:
Timestamp:
07/14/2020 02:41:42 PM (6 years ago)
Author:
antwerpes
Message:

Tagging version 1.0.7.

Location:
doccheck-login/tags/1.0.7
Files:
6 added
11 edited
1 copied

Legend:

Unmodified
Added
Removed
  • doccheck-login/tags/1.0.7/README.txt

    r2239640 r2340421  
    44Requires at least: 4.5
    55Tested up to: 5.2.3
    6 Stable tag: 1.0.6
     6Stable tag: 1.0.7
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    5050
    5151== Changelog ==
     52= 1.0.7 =
     53* Added profession routing and profession access management
     54* Tested up to 5.4.2
    5255
    5356= 1.0.6 =
  • doccheck-login/tags/1.0.7/admin/class-dcl-metaboxes.php

    r2175555 r2340421  
    1313 */
    1414class DCL_Metaboxes extends DCL_Admin {
     15
     16
     17    /**
     18     * Register the stylesheets for the public-facing side of the site.
     19     *
     20     * @since    1.0.0
     21     */
     22    public function enqueue_styles() {
     23
     24        /**
     25         * This function is provided for demonstration purposes only.
     26         *
     27         * An instance of this class should be passed to the run() function
     28         * defined in Ga_Datalayer_Loader as all of the hooks are defined
     29         * in that particular class.
     30         *
     31         * The Ga_Datalayer_Loader will then create the relationship
     32         * between the defined hooks and the functions defined in this
     33         * class.
     34         */
     35
     36        wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/chosen.min.css', array(), $this->version, 'all' );
     37
     38    }
     39
     40    /**
     41     * Register the JavaScript for the public-facing side of the site.
     42     *
     43     * @since    1.0.0
     44     */
     45    public function enqueue_scripts() {
     46
     47        /**
     48         * This function is provided for demonstration purposes only.
     49         *
     50         * An instance of this class should be passed to the run() function
     51         * defined in Ga_Datalayer_Loader as all of the hooks are defined
     52         * in that particular class.
     53         *
     54         * The Ga_Datalayer_Loader will then create the relationship
     55         * between the defined hooks and the functions defined in this
     56         * class.
     57         */
     58
     59        wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/chosen.jquery.min.js', array( 'jquery' ), $this->version, false );
     60
     61    }
    1562
    1663    /**
     
    5198     * @access  public
    5299     */
    53     public function dcl_display_meta_box_restrict_access() { ?>
    54         <label>
    55             <input type="checkbox"
    56                    id="dcl_restrict_access"
    57                    name="dcl_restrict_access"
    58                 <?php checked( get_post_meta( get_the_ID(), 'dcl_restrict_access', true ), 'on', true ); ?> />
    59             <?php _e( 'Restrict access with login', 'doccheck-login' ); ?>
    60         </label>
     100    public function dcl_display_meta_box_restrict_access() {
     101        global $post;
     102
     103
     104        $select_box = $this->dcl_get_occupational_group();
     105
     106        if ( get_option( 'dcl_general_profession_routing_active' ) ) {
     107
     108            if ( get_post_meta( get_the_ID(), 'dcl_group_routing', true ) == '' && get_post_meta( get_the_ID(), 'dcl_restrict_access', true ) == 'on' ) {
     109                update_post_meta( get_the_ID(), 'dcl_all_group', 'on' );
     110            }
     111            $access_restricted = get_post_meta( $post->ID, 'dcl_restrict_access', true );
     112            $dcl_all_group     = get_post_meta( $post->ID, 'dcl_all_group', true );
     113
     114            if ( ( ! $access_restricted || $dcl_all_group ) ) {
     115                update_post_meta( get_the_ID(), 'dcl_group_routing', '' );
     116            }
     117        } else {
     118            update_post_meta( get_the_ID(), 'dcl_group_routing', '' );
     119            update_post_meta( get_the_ID(), 'dcl_all_group', '' );
     120        }
     121        ?>
     122        <div>
     123            <label>
     124                <input type="checkbox"
     125                       id="dcl_restrict_access"
     126                       class="<?php echo get_post_meta( $post->ID, 'dcl_all_group', true ) ?>"
     127                       name="dcl_restrict_access"
     128                    <?php checked( get_post_meta( get_the_ID(), 'dcl_restrict_access', true ), 'on', true ); ?>
     129                       onclick="toggleCheckboxes(this)"/>
     130                <?php _e( 'Restrict access with login', 'doccheck-login' ); ?>
     131            </label>
     132        </div>
     133        <?php if ( get_option( 'dcl_general_profession_routing_active' ) ) : ?>
     134            <div style="margin-top: 10px; <?php echo ! $access_restricted ? ' display: none;' : '' ?>"
     135                 id="dcl_all_group_wrapper">
     136                <label>
     137                    <input type="checkbox"
     138                           id="dcl_all_group"
     139                           name="dcl_all_group"
     140                        <?php checked( get_post_meta( get_the_ID(), 'dcl_all_group', true ), 'on', true ); ?>
     141                           onclick="toggleSelectbox(this)"/>
     142                    <?php _e( 'All approved professions', 'doccheck-login' ); ?>
     143                </label>
     144            </div>
     145            <div style="margin-top: 10px; margin-bottom: 20px;<?php echo ! $access_restricted || $dcl_all_group ? ' display: none;' : '' ?>"
     146                 id="dcl_group_routing_wrapper">
     147                <?php _e( 'Please select a profession', 'doccheck-login' ); ?>
     148
     149                <select name="dcl_group_routing[]" id="dcl_group_routing"
     150                        data-placeholder="<?php _e( 'Please select a profession', 'doccheck-login' ); ?>"
     151                        multiple class="chosen-select">
     152                    <?php foreach ( $select_box as $option_key => $option_value ) : ?>
     153
     154                        <option value="<?php echo $option_key ?>" <?php echo in_array( $option_key, get_post_meta( get_the_ID(), 'dcl_group_routing', true ) ) ? 'selected="selected"' : ''; ?>><?php
     155                            echo $option_value
     156                            ?></option>
     157                    <?php endforeach; ?>
     158                </select>
     159                <script>
     160                    jQuery(".chosen-select").chosen({width: "100%"});
     161
     162
     163                    function toggleCheckboxes(elem) {
     164
     165                        if (elem.checked === true) {
     166                            document.getElementById("dcl_all_group").checked = true;
     167                            document.getElementById('dcl_all_group_wrapper').style.display = 'block';
     168                        } else {
     169                            document.getElementById("dcl_all_group").checked = false;
     170                            document.getElementById('dcl_all_group_wrapper').style.display = 'none';
     171                            document.getElementById('dcl_group_routing_wrapper').style.display = 'none';
     172                        }
     173
     174                    }
     175
     176                    function toggleSelectbox(elem) {
     177
     178                        if (elem.checked === false) {
     179
     180                            document.getElementById('dcl_group_routing_wrapper').style.display = 'block';
     181
     182                        } else {
     183                            document.getElementById('dcl_group_routing_wrapper').style.display = 'none';
     184                        }
     185
     186                    }
     187
     188                </script>
     189
     190
     191            </div>
     192            <?php wp_nonce_field( 'dcl_all_group', 'dcl_all_group_nonce' ); ?>
     193            <?php wp_nonce_field( 'dcl_group_routing', 'dcl_group_routing_nonce' ); ?>
     194        <?php endif; ?>
    61195
    62196        <?php wp_nonce_field( 'dcl_restrict_access', 'dcl_restrict_access_nonce' ); ?>
     
    73207    public function dcl_save_meta_boxes( $post_id ) {
    74208        $options = [
    75             'dcl_restrict_access'
     209            'dcl_restrict_access',
     210            'dcl_all_group',
     211            'dcl_group_routing'
    76212        ];
    77213
    78214        foreach ( $options as $option ) {
    79215            if ( $this->dcl_user_can_save( $post_id, $option . '_nonce', $option ) ) {
     216
    80217                if ( isset( $_POST[ $option ] ) ) {
    81                     update_post_meta( $post_id, $option, $_POST[ $option ] );
     218
     219                    $post_option = $_POST[ $option ];
     220
     221                    update_post_meta( $post_id, $option, $post_option );
    82222                } else {
    83223                    delete_post_meta( $post_id, $option );
     
    106246        return ! ( $is_autosave || $is_revision ) && $is_valid_nonce;
    107247    }
     248
     249
     250    /**
     251     * Request access token from oauth service.
     252     *
     253     *
     254     * @return array|mixed|object
     255     * @since   1.0.0
     256     */
     257    private function dcl_get_occupational_group() {
     258
     259        $dcl_form_occupational_groups_en = [
     260            ''       => 'Please choose a professional group',
     261            '19'     => 'Alternative / Non-medical practitioner',
     262            '24'     => 'Bio technican | Medical technican',
     263            '17'     => 'Biochemist',
     264            '45'     => 'Biological / Chemical / Physical technical assistant',
     265            '14'     => 'Biologist',
     266            '100112' => 'Biomedical Scientist',
     267            '100108' => 'Biomedical Scientist',
     268            '1005'   => 'Business/ Management/ Economy',
     269            '15'     => 'Chemist',
     270            '73'     => 'Children\'s nurse',
     271            '69'     => 'Chiropractic',
     272            '100099' => 'Clinical trial assistant',
     273            '59'     => 'Company Password',
     274            '66'     => 'Dental assistant',
     275            '99116'  => 'Dental care profession (other)',
     276            '100119' => 'Dental care profession (other)',
     277            '70'     => 'Dental hygienist',
     278            '65'     => 'Dental technician / Mechanic',
     279            '4'      => 'Dentist',
     280            '67'     => 'Diabetes Advisor',
     281            '39'     => 'Dietetic Assistant',
     282            '5016'   => 'Dietician',
     283            '100238' => 'DocCheck Blogger',
     284            '99999'  => 'DocCheck Team',
     285            '10'     => 'Doctor\'s Receptionist/ Assistant',
     286            '68'     => 'Druggist (CH)',
     287            '35'     => 'Emergency medical technician [EMT]',
     288            '34'     => 'Emergency Paramedic',
     289            '99998'  => 'Employee DocCheck Shop',
     290            '100113' => 'Epidemiologist',
     291            '18'     => 'Ergotherapist',
     292            '11'     => 'Geriatric nurse',
     293            '3002'   => 'Health economist',
     294            '5007'   => 'Health official',
     295            '100040' => 'Hearing Care Professional',
     296            '104'    => 'Industry employee',
     297            '38'     => 'Insurance Company Employee',
     298            '1003'   => 'Intern pharmacist',
     299            '5100'   => 'Journalist',
     300            '42'     => 'Lawyer',
     301            '13'     => 'Librarian',
     302            '36'     => 'Management Consultant',
     303            '30'     => 'Medical advertising agency employee',
     304            '100115' => 'Medical Assistant (other)',
     305            '99110'  => 'Medical Assistant (other)',
     306            '46'     => 'Medical dealer',
     307            '41'     => 'Medical documentalist',
     308            '100098' => 'Medical educator',
     309            '100109' => 'Medical Engineer',
     310            '100114' => 'Medical Engineer',
     311            '22'     => 'Medical information scientist',
     312            '23'     => 'Medical journalist',
     313            '28'     => 'Medical laboratory assistant',
     314            '2004'   => 'Medical laboratory scientist (MLS)',
     315            '5014'   => 'Medical laboratory scientist radiology',
     316            '5019'   => 'Medical Photographer / Designer',
     317            '16'     => 'Medical physicist',
     318            '20'     => 'Midwife',
     319            '9999'   => 'Non-medical professions',
     320            '21'     => 'Nurse / Hospital nurse',
     321            '75'     => 'Nurse anesthetist',
     322            '3010'   => 'Nurse without degree',
     323            '58'     => 'Nursing and care management with diploma',
     324            '2003'   => 'Nursing Home Manager',
     325            '99112'  => 'Nursing profession (other)',
     326            '100116' => 'Nursing profession (other)',
     327            '5018'   => 'Nursing scientist',
     328            '100100' => 'Nursing teacher/ educationist',
     329            '100097' => 'Nutrition consultant',
     330            '53'     => 'Optician / Orthoptist',
     331            '72'     => 'Orderly / Ward assistant / Nurse assistant',
     332            '71'     => 'Orthoptics',
     333            '37'     => 'Other medical professions',
     334            '1008'   => 'Other (non-medical profession)',
     335            '10000'  => 'Patient',
     336            '2005'   => 'Pharmaceutical Assistant',
     337            '99113'  => 'Pharmaceutical profession (other)',
     338            '100096' => 'Pharmaceutical sales representative',
     339            '26'     => 'Pharmaceutical-Commercial employee',
     340            '25'     => 'Pharmaceutical-technical assistant',
     341            '2'      => 'Pharmacist',
     342            '1002'   => 'Pharmacist (employee)',
     343            '27'     => 'Pharmacy engineer',
     344            '1001'   => 'Pharmacy owner',
     345            '12'     => 'Pharmacy technician',
     346            '1004'   => 'Physical scientist',
     347            '1'      => 'Physician',
     348            '100111' => 'Physician Assistant',
     349            '100107' => 'Physician Assistant',
     350            '33'     => 'Physiotherapist',
     351            '100101' => 'Physiotherapist for animals',
     352            '3006'   => 'Podiatrist',
     353            '5013'   => 'Psychiatric nurse / Mental health nurse',
     354            '57'     => 'Psychological technical assistant',
     355            '31'     => 'Psychologist',
     356            '5020'   => 'Psychomotoric therapist',
     357            '32'     => 'Psychotherapist',
     358            '29'     => 'Publishing Company Employee',
     359            '3004'   => 'Radiology assistant',
     360            '1006'   => 'Scholar',
     361            '63'     => 'Speech therapist',
     362            '5'      => 'Student',
     363            '54'     => 'Student of animal health',
     364            '106'    => 'Student of dentistry',
     365            '105'    => 'Student of human medicine',
     366            '56'     => 'Student of pharmacy',
     367            '100073' => 'Student: Other study courses',
     368            '76'     => 'Surgical nurse',
     369            '5021'   => 'Surgical technician assistant',
     370            '1007'   => 'Technician',
     371            '99114'  => 'Therapist (other)',
     372            '100117' => 'Therapist (other)',
     373            '44'     => 'Toxicologist',
     374            '3'      => 'Veterinary',
     375            '5010'   => 'Veterinary healer',
     376            '100118' => 'Veterinary profession (other)',
     377            '99115'  => 'Veterinary profession (other)',
     378            '5017'   => 'Veterinary\'s assistant'
     379        ];
     380
     381
     382        $dcl_form_occupational_groups_de = [
     383            ''       => 'Bitte wählen Sie eine Berufsgruppe',
     384            '11'     => 'Altenpfleger/in',
     385            '75'     => 'Anästhesiepfleger/in',
     386            '1002'   => 'Angestellte/r Apotheker/in',
     387            '42'     => 'Anwalt',
     388            '12'     => 'Apothekenhelfer/in',
     389            '2'      => 'Apotheker/in',
     390            '1'      => 'Arzt | Ärztin',
     391            '100107' => 'Arztassistent/in',
     392            '100111' => 'Arztassistent/in (Physician Assistant)',
     393            '53'     => 'Augenoptiker/in | Orthoptist/in',
     394            '5007'   => 'Beamter im Gesundheitswesen',
     395            '13'     => 'Bibliothekar',
     396            '17'     => 'Biochemiker/in | Pharmakologe/in | Toxikologe/in',
     397            '14'     => 'Biologe',
     398            '1004'   => 'Biologe/in | Chemiker/in | Naturwissenschaftler/in',
     399            '2004'   => 'Biologie-Laborant/in | Chemie-Laborant/in',
     400            '45'     => 'Biologisch- | Chemisch- | Physikalisch-technische/r Assistent/in',
     401            '100112' => 'Biomediziner/in',
     402            '100108' => 'Biomediziner/in',
     403            '24'     => 'Biotechniker/in | Medizintechniker/in',
     404            '15'     => 'Chemiker',
     405            '69'     => 'Chiropraktiker/in | Osteopath/in',
     406            '70'     => 'Dentalhygieniker',
     407            '67'     => 'Diabetesberater/in',
     408            '39'     => 'Diätassistent/in',
     409            '100238' => 'DocCheck Blogger',
     410            '99998'  => 'DocCheck Shop Team',
     411            '99999'  => 'DocCheck Team',
     412            '68'     => 'Drogist/in (CH)',
     413            '100113' => 'Epidemiologe/in',
     414            '18'     => 'Ergotherapeut/in',
     415            '100097' => 'Ernährungsberater/in',
     416            '5016'   => 'Ernährungswissenschaftler/in | Ökotrophologe/in',
     417            '59'     => 'Firmenpasswort',
     418            '1006'   => 'Geisteswissenschaftler/in',
     419            '73'     => 'Gesundheits- und Kinderkrankenpfleger/in',
     420            '21'     => 'Gesundheits- und Krankenpfleger/in',
     421            '3002'   => 'Gesundheitsökonom/in | Gesundheitsmanager/in | Gesundheitswissenschaftler/in',
     422            '20'     => 'Hebamme | Entbindungspfleger',
     423            '19'     => 'Heilpraktiker/in',
     424            '100040' => 'Hörakustiker/in',
     425            '5100'   => 'Journalist',
     426            '100099' => 'Klinischer Monitor | Mitarbeiter/in klinische Studien',
     427            '72'     => 'Krankenpflegehelfer',
     428            '3010'   => 'Krankenpfleger ohne Abschluss',
     429            '5013'   => 'Krankenpfleger/in Psychiatrie',
     430            '63'     => 'Logopäde/in | Sprachtherapeut/in',
     431            '5019'   => 'Medizinfotograf/in | Designer/in',
     432            '22'     => 'Medizininformatiker/in',
     433            '100114' => 'Mediziningenieur/in',
     434            '100109' => 'Mediziningenieur/in',
     435            '99110'  => 'Medizinische(r)      Assistent/in (sonstige)',
     436            '100115' => 'Medizinische/r Assistent/in (sonstige)',
     437            '41'     => 'Medizinische/r Dokumentar/in',
     438            '10'     => 'Medizinische/r Fachangestellte/r',
     439            '46'     => 'Medizinische/r Fachhändler/in (Arzneimittel)',
     440            '28'     => 'Medizinisch-technische/r Assistent/in',
     441            '5014'   => 'Medizinisch-technischer Radiologieassistent',
     442            '23'     => 'Medizinjournalist/in',
     443            '100098' => 'Medizinpädagoge/in',
     444            '16'     => 'Medizinphysiker/in',
     445            '104'    => 'Mitarbeiter/in Industrie | Agentur',
     446            '29'     => 'Mitarbeiter/in medizinische Verlage',
     447            '30'     => 'Mitarbeiter/in Pharmaagentur',
     448            '38'     => 'Mitarbeiter/in Versicherung',
     449            '5020'   => 'Motopäde/in | Mototherapeut/in',
     450            '9999'   => 'Nichtmedizinischer Beruf',
     451            '34'     => 'Notfallsanitäter/in',
     452            '5021'   => 'Operationstechnische/r Assistent/in | Chirurgische/r Assistent/in',
     453            '76'     => 'OP-Pfleger/in',
     454            '71'     => 'Orthoptist',
     455            '10000'  => 'Patient',
     456            '100116' => 'Pflegeberuf (sonstige)',
     457            '99112'  => 'Pflegeberuf (sonstige)',
     458            '2003'   => 'Pflegedienstleiter/in | Pflegeheimleiter/in',
     459            '5018'   => 'Pflegemanager/in | Pflegewissenschaftler/in',
     460            '100100' => 'Pflegepädagoge',
     461            '58'     => 'Pflegewirt/in',
     462            '2005'   => 'Pharmaassistent/in',
     463            '100096' => 'Pharmaberater/in | Pharmareferent/in',
     464            '1003'   => 'Pharmazeut/in | Pharmazie-Praktikant/in',
     465            '26'     => 'Pharmazeutisch-kaufmännische/r Angestellte/r (PKA)',
     466            '25'     => 'Pharmazeutisch-technische/r Assistent/in (PTA)',
     467            '40'     => 'Pharmazieberuf (sonstige)',
     468            '99113'  => 'Pharmazieberuf (sonstige)',
     469            '27'     => 'Pharmazieingenieur/in',
     470            '33'     => 'Physiotherapeut/in',
     471            '3006'   => 'Podologe/in | Medizinische/r Fußpfleger/in',
     472            '3007'   => 'Profession d\'appareillage',
     473            '31'     => 'Psychologe/in',
     474            '57'     => 'Psychologische/r Assistent/in | Psychologische/r Berater/in',
     475            '32'     => 'Psychotherapeut/in',
     476            '3004'   => 'Radiologieassistent',
     477            '35'     => 'Rettungssanitäter/in',
     478            '1001'   => 'Selbstst. Apotheker/in',
     479            '1008'   => 'Sonstige (nichtmedizinischer Beruf)',
     480            '5'      => 'Student/in',
     481            '100073' => 'Student/in (andere Fächer)',
     482            '105'    => 'Student/in der Humanmedizin',
     483            '56'     => 'Student/in der Pharmazie',
     484            '54'     => 'Student/in der Tiermedizin',
     485            '106'    => 'Student/in der Zahnmedizin',
     486            '1007'   => 'Techniker/in, IT',
     487            '99114'  => 'Therapeut (sonstige)',
     488            '100117' => 'Therapeutischer Beruf (sonstige)',
     489            '3'      => 'Tierarzt | Tierärztin',
     490            '5010'   => 'Tierheilpraktiker/in',
     491            '100118' => 'Tiermedizinischer Beruf (sonstige)',
     492            '99115'  => 'Tiermedizinischer Beruf (sonstige)',
     493            '5017'   => 'Tiermedizinische/r Fachangestellte/r',
     494            '100101' => 'Tierphysiotherapeut/in',
     495            '44'     => 'Toxikologe',
     496            '36'     => 'Unternehmensberater/in',
     497            '37'     => 'Weitere medizinische Berufe',
     498            '1005'   => 'Wirtschaftswissenschaftler/in',
     499            '4'      => 'Zahnarzt | Zahnärztin',
     500            '100119' => 'Zahnmedizinischer Beruf (sonstige)',
     501            '99116'  => 'Zahnmedizinischer Beruf (sonstige)',
     502            '66'     => 'Zahnmedizinische/r Fachangestellte/r | Dentalhygieniker/in',
     503            '65'     => 'Zahn'
     504        ];
     505
     506        if ( get_locale() === 'de_DE' ) {
     507            $array = $dcl_form_occupational_groups_de;
     508        } else {
     509            $array = $dcl_form_occupational_groups_en;
     510        }
     511
     512        return $array;
     513    }
    108514}
     515
  • doccheck-login/tags/1.0.7/admin/class-dcl-settings.php

    r2239640 r2340421  
    3434    var $dcl_support_client_secret_email = '[email protected]';
    3535
     36
    3637    /**
    3738     * Register settings page.
     
    6768
    6869                ?></form>
     70
     71            <script>
     72
     73                function getCookie(cname) {
     74                    var name = cname + "=";
     75                    var decodedCookie = decodeURIComponent(document.cookie);
     76                    var ca = decodedCookie.split(';');
     77                    for (var i = 0; i < ca.length; i++) {
     78                        var c = ca[i];
     79                        while (c.charAt(0) == ' ') {
     80                            c = c.substring(1);
     81                        }
     82                        if (c.indexOf(name) == 0) {
     83                            return c.substring(name.length, c.length);
     84                        }
     85                    }
     86                    return "";
     87                }
     88
     89                document.getElementById('dcl_general_profession_routing_active').addEventListener('change', function () {
     90                    // Setup siblings array
     91                    var siblings = [];
     92
     93                    if (this.value === 1) {
     94                        this.value = 0;
     95                    } else {
     96                        this.value = 1;
     97                    }
     98
     99                    elem = this.parentNode.parentNode.parentNode.nextElementSibling;
     100
     101                    // As long as a sibling exists
     102                    while (elem) {
     103                        siblings.push(elem);
     104                        elem = elem.nextElementSibling;
     105
     106                    }
     107
     108                    siblings[0].style.display = 'none';
     109
     110                    for (var i = 1; i < siblings.length - 1; i++) {
     111                        if (this.checked == true) {
     112
     113                            if (siblings[i].className !== "ap-dc-none") {
     114                                siblings[i].style.display = 'table-row';
     115
     116                                routine_first_jobs = document.getElementById("dcl_general_jobs");
     117                                //routine_first_jobs.parentNode.parentNode.parentNode.style.display = 'table-cell';
     118                                document.getElementById("add").parentNode.parentNode.style.display = 'table-cell';
     119                            }
     120                        } else {
     121                            siblings[i].style.display = 'none';
     122                        }
     123
     124                    }
     125
     126                });
     127
     128            </script>
     129
     130            <script>
     131
     132                window.onload = function (e) {
     133                    current_val = 0
     134
     135                    current_val = document.getElementById("dcl_general_add_profession_routing").value;
     136
     137                    document.cookie = "currentNum = " + current_val;
     138                    document.cookie = "repeaterNum = 0";
     139                    value = current_val;
     140                    ap_dclogin_pages = document.querySelectorAll(".ap-dclogin--pages");
     141                    document.getElementById("dcl_general_add_profession_routing").parentNode.parentNode.style.display = 'none';
     142
     143                    for (var i = 0; i < ap_dclogin_pages.length; i++) {
     144                        ap_dclogin_pages[i].parentNode.parentNode.style.display = 'none';
     145                        ap_dclogin_pages[i].parentNode.parentNode.className = 'ap-dc-none';
     146                    }
     147
     148                    <?php if(! get_option( 'dcl_general_profession_routing_active' )) { ?>
     149                    routine_first_jobs = document.getElementById("dcl_general_jobs");
     150                    routine_first_jobs.parentNode.parentNode.parentNode.style.display = 'none';
     151                    document.getElementById("dcl_general_add_profession_routing").parentNode.parentNode.style.display = 'none';
     152                    document.getElementById("add").parentNode.parentNode.style.display = 'none';
     153
     154                    <?php } ?>
     155                }
     156
     157
     158            </script>
     159
     160
    69161        </div>
    70162    <?php }
     
    114206    }
    115207
     208
     209    public function test_0_callback() {
     210        printf(
     211            '<input class="regular-text" type="text" name="dclogin_option_name[test_0]" id="test_0" value="%s">',
     212            isset( $this->dclogin_options['test_0'] ) ? esc_attr( $this->dclogin_options['test_0'] ) : ''
     213        );
     214    }
     215
     216
    116217    /**
    117218     * Register settings.
     
    124225        $settings_section_general = $this->plugin_name . '-general-settings';
    125226        $settings_section_form    = $this->plugin_name . '-form-settings';
     227        $setting_number_current   = get_option( 'dcl_general_add_profession_routing' );
     228        $setting_number_jobs      = $_COOKIE['repeaterNum'];
    126229
    127230        // Sections
     
    139242            $settings_page
    140243        );
     244        $group_array_job          = [];
     245        $group_array_page         = [];
     246        $group_array_job_current  = [];
     247        $group_array_page_current = [];
     248
     249        if ( $setting_number_current !== 0 && get_option( 'dcl_general_profession_routing_active' ) ) {
     250            for ( $y = 0; $y < $setting_number_current; $y ++ ) {
     251
     252                if ( get_option( 'dcl_general_jobs' . $y ) != '' && get_option( 'dcl_general_jobs' . $y ) != null ) {
     253
     254
     255                    $group_array_job_current[ $y ] = array(
     256                        'name'    => 'dcl_general_jobs' . $y,
     257                        'title'   => __( '', 'doccheck-login' ),
     258                        'section' => $settings_section_general,
     259                        'type'    => 'repeater',
     260                        'atts'    => [
     261                            'option_name_job'     => 'dcl_general_jobs' . $y,
     262                            'select_options_job'  => $this->dcl_get_form_occupational(),
     263                            'option_name_page'    => 'dcl_general_pages' . $y,
     264                            'select_options_page' => $this->dcl_get_pages_for_select(),
     265                            'type'                => 'job'
     266                        ]
     267                    );
     268
     269
     270                    $group_array_page_current[ $y ] = array(
     271                        'name'    => 'dcl_general_pages' . $y,
     272                        'title'   => __( '', 'doccheck-login' ),
     273                        'section' => $settings_section_general,
     274                        'type'    => 'repeater',
     275                        'atts'    => [
     276                            'option_name_job'     => 'dcl_general_jobs' . $y,
     277                            'select_options_job'  => $this->dcl_get_form_occupational(),
     278                            'option_name_page'    => 'dcl_general_pages' . $y,
     279                            'select_options_page' => $this->dcl_get_pages_for_select(),
     280                            'type'                => 'page'
     281                        ]
     282
     283                    );
     284                }
     285            }
     286
     287        }
     288        if ( $setting_number_jobs !== 0 ) {
     289            for ( $i = $setting_number_current; $i < $setting_number_jobs; $i ++ ) {
     290                $group_array_job[ $i ] = array(
     291                    'name'    => 'dcl_general_jobs' . $i,
     292                    'title'   => __( '', 'doccheck-login' ),
     293                    'section' => $settings_section_general,
     294                    'type'    => 'repeater',
     295                    'atts'    => [
     296                        'option_name_job'     => 'dcl_general_jobs' . $i,
     297                        'select_options_job'  => $this->dcl_get_form_occupational(),
     298                        'option_name_page'    => 'dcl_general_pages' . $i,
     299                        'select_options_page' => $this->dcl_get_pages_for_select(),
     300                        'type'                => 'job'
     301                    ]
     302                );
     303
     304
     305                $group_array_page[ $i ] = array(
     306                    'name'    => 'dcl_general_pages' . $i,
     307                    'title'   => __( '', 'doccheck-login' ),
     308                    'section' => $settings_section_general,
     309                    'type'    => 'repeater',
     310                    'atts'    => [
     311                        'option_name_job'     => 'dcl_general_jobs' . $i,
     312                        'select_options_job'  => $this->dcl_get_form_occupational(),
     313                        'option_name_page'    => 'dcl_general_pages' . $i,
     314                        'select_options_page' => $this->dcl_get_pages_for_select(),
     315                        'type'                => 'page'
     316                    ]
     317
     318                );
     319
     320            }
     321        }
     322
    141323
    142324        // Fields
    143         $settings = [
     325        $settings1 = [
    144326            // Section general
    145327            [
     
    187369                ]
    188370            ],
     371
     372
     373            [
     374                'name'    => 'dcl_general_profession_routing_active',
     375                'title'   => __( 'Profession routing', 'doccheck-login' ),
     376                'section' => $settings_section_general,
     377                'type'    => 'checkbox',
     378                'atts'    => [
     379                    'label' => __( 'activated', 'doccheck-login' ),
     380                ]
     381            ],
     382
     383            [
     384                'name'    => 'dcl_general_add_profession_routing',
     385                'title'   => __( 'Add profession routing', 'doccheck-login' ),
     386                'section' => $settings_section_general,
     387                'type'    => 'repeater',
     388                'atts'    => [
     389                    'option_name_job'     => 'dcl_general_jobs',
     390                    'select_options'      => $this->dcl_get_form_occupational(),
     391                    'option_name_page'    => 'dcl_general_pages',
     392                    'select_options_page' => $this->dcl_get_pages_for_select(),
     393                    'type'                => 'add'
     394
     395                ]
     396            ],
     397
     398            [
     399                'name'    => 'dcl_general_jobs',
     400                'title'   => __( '', 'doccheck-login' ),
     401                'section' => $settings_section_general,
     402                'type'    => 'repeater',
     403                'atts'    => [
     404                    'option_name_job'     => 'dcl_general_jobs',
     405                    'select_options_job'  => $this->dcl_get_form_occupational(),
     406                    'option_name_page'    => 'dcl_general_pages',
     407                    'select_options_page' => $this->dcl_get_pages_for_select(),
     408                    'type'                => 'job'
     409                ]
     410
     411            ],
     412            [
     413                'name'    => 'dcl_general_pages',
     414                'title'   => __( '', 'doccheck-login' ),
     415                'section' => $settings_section_general,
     416                'type'    => 'repeater',
     417                'atts'    => [
     418                    'option_name_job'     => 'dcl_general_jobs',
     419                    'select_options_job'  => $this->dcl_get_form_occupational(),
     420                    'option_name_page'    => 'dcl_general_pages',
     421                    'select_options_page' => $this->dcl_get_pages_for_select(),
     422                    'type'                => 'page'
     423                ]
     424            ]
     425
     426
     427        ];
     428
     429        $settings = [
     430
     431            [
     432                'name'    => 'dcl_general_redirect_page_id',
     433                'title'   => __( '\'Profession group restricted\' redirect page', 'doccheck-login' ),
     434                'section' => $settings_section_general,
     435                'type'    => 'select',
     436                'atts'    => [
     437                    'select_options' => $this->dcl_get_pages_for_select(),
     438                    'default'        => $this->dcl_page_redirect_id,
     439                ]
     440            ],
     441
    189442            [
    190443                'name'    => 'dcl_general_hide_menu_items',
     
    196449                ]
    197450            ],
     451
    198452            // Section form
    199453            [
     
    217471            [
    218472                'name'    => 'dcl_general_set_language_by_wpml',
    219                 'title'   => __( 'Sprache (WPML)', 'doccheck-login' ),
     473                'title'   => __( 'Language (WPML)', 'doccheck-login' ),
    220474                'section' => $settings_section_form,
    221475                'type'    => 'checkbox',
     
    243497            ],
    244498        ];
     499
     500        $settings = array_merge( $settings1, $group_array_job_current, $group_array_page_current, $group_array_job, $group_array_page, $settings );
     501
    245502
    246503        // Add and register settings
     
    373630        </label>
    374631
     632
     633        <?php if ( $description ) : ?>
     634                    <p class="description"><?php echo $description; ?></p>
     635        <?php endif; ?>
     636    <?php }
     637
     638    /**
     639     * Render select field.
     640     *
     641     * @param   $atts
     642     *
     643     * @since   1.0.7
     644     * @access  public
     645     */
     646    public function dcl_render_repeater_field( $atts ) {
     647        // Set attributes
     648        $option_name_job  = $atts['option_name_job'];
     649        $option_name_add  = $atts['option_name'];
     650        $option_name_page = $atts['option_name_page'];
     651        $option_type      = isset( $atts['type'] ) ? $atts['type'] : [];
     652
     653        $select_options_job  = isset( $atts['select_options_job'] ) ? $atts['select_options_job'] : [];
     654        $select_options_page = isset( $atts['select_options_page'] ) ? $atts['select_options_page'] : [];
     655        $default             = isset( $atts['default'] ) ? $atts['default'] : false;
     656        $description         = isset( $atts['description'] ) ? $atts['description'] : false;
     657
     658        // Get option value
     659        $value_job  = get_option( $option_name_job, $default );
     660        $value_page = get_option( $option_name_page, $default );
     661        $value_add  = get_option( $option_name_add, $default );
     662        // Get option value ?>
     663
     664
     665        <?php if ( $option_type === 'add' ) { ?>
     666
     667            <input type="number" hidden
     668                   value="<?php echo get_option( 'dcl_general_profession_routing_active' ) ? esc_attr( $value_add ) : 0 ?>"
     669                   name="<?php echo $option_name_add ?>"
     670                   id="<?php echo $option_name_add ?>"/>
     671
     672        <?php } elseif ( $option_type === 'job' ) { ?>
     673
     674            <div style="display: flex; align-items: center;">
     675                <select name="<?php echo $option_name_job ?>" id="<?php echo $option_name_job ?>">
     676                    <?php foreach ( $select_options_job as $option_key => $option_value ) : ?>
     677                        <option value="<?php echo $option_key ?>" <?php selected( $value_job, $option_key ); ?>><?php
     678                            echo $option_value
     679                            ?></option>
     680                    <?php endforeach; ?>
     681                </select>
     682
     683
     684                <select name="<?php echo $option_name_page ?>" id="<?php echo $option_name_page ?>">
     685                    <?php foreach ( $select_options_page as $option_key => $option_value ) : ?>
     686                        <option value="<?php echo $option_key ?>" <?php selected( $value_page, $option_key ); ?>><?php
     687                            echo $option_value
     688                            ?></option>
     689                    <?php endforeach; ?>
     690                </select>
     691                <?php if ( $option_name_job == "dcl_general_jobs" ) { ?>
     692                    <button type="button" id="add" onclick="incrementValue()"
     693                            style="background-color: #0073aa;border: 0;padding: 0 13px;color: white;
     694                            font-size: 26px;height: 40px;line-height: 35px; cursor: pointer; margin-left: 10px;">
     695                        +
     696                    </button>
     697
     698
     699                <?php } ?>
     700                <?php if ( $option_name_job != "dcl_general_jobs" ) { ?>
     701                    <div class="ap-dc-delete" onclick="remove_routing(this);"
     702                         style="cursor:pointer; margin-left: 10px; color:red;">
     703
     704                        löschen?
     705                    </div>
     706                <?php } ?>
     707            </div>
     708
     709            <script>
     710
     711
     712                function remove_routing(element) {
     713
     714                    result = [],
     715                        node = element.parentNode.firstChild;
     716
     717                    while (node) {
     718                        if (node !== element && node.nodeType === Node.ELEMENT_NODE) {
     719
     720
     721                            result.push(node);
     722
     723                        }
     724
     725                        node = node.nextElementSibling || node.nextSibling;
     726
     727                    }
     728
     729                    result[0].selectedIndex = 0;
     730                    result[1].selectedIndex = 0;
     731
     732                    element.parentNode.parentNode.parentNode.style.display = 'none';
     733
     734                }
     735
     736                function remove_dynamic_routing(element) {
     737
     738                    result = [],
     739                        node = element.parentNode.firstChild;
     740
     741                    while (node) {
     742                        if (node !== element && node.nodeType === Node.ELEMENT_NODE) {
     743
     744
     745                            result.push(node);
     746
     747                        }
     748
     749                        node = node.nextElementSibling || node.nextSibling;
     750
     751                    }
     752
     753                    result[0].selectedIndex = 0;
     754                    result[1].selectedIndex = 0;
     755
     756                    element.parentNode.parentNode.parentNode.style.display = 'none';
     757                    $repeaternumber = getCookie("repeaterNum");
     758                    $repeaternumber = +$repeaternumber - 1;
     759
     760                    document.cookie = "repeaterNum = " + +$repeaternumber;
     761
     762                    value--;
     763                }
     764
     765
     766                function incrementValue() {
     767
     768                    value++;
     769
     770                    document.getElementById("dcl_general_add_profession_routing").value = value;
     771
     772                    document.cookie = "repeaterNum = " + value;
     773                    diff = (+value - 1);
     774
     775
     776                    var append = "<th scope=\"row\"></th> <td><div class=\"append_select\" id=\"append_select\" style=\"display: flex; align-items: center;\">\n" +
     777                        "<select name='dcl_general_jobs" + (diff) + "' id='dcl_general_jobs" + (diff) + "'>\n" +
     778                        "<?php foreach ( $select_options_job as $option_key => $option_value ) : ?>" +
     779                        "<option value='<?php echo $option_key ?>' >" +
     780                        "<?php echo $option_value?>" +
     781                        "</option>\n" +
     782                        "<?php endforeach; ?>\n" +
     783                        "</select>\n" +
     784                        "\n" +
     785                        "\n" +
     786                        "<select name='dcl_general_pages" + diff + "' id='dcl_general_pages" + diff + "'>\n" +
     787                        "<?php foreach ( $select_options_page as $option_key => $option_value ) : ?>" +
     788                        "<option value='<?php echo $option_key ?>' >" +
     789                        "<?php echo $option_value?>" +
     790                        "</option>\n" +
     791                        "<?php endforeach; ?>\n" +
     792                        "</select>" +
     793                        "<div class=\"ap-dc-delete\" onclick=\"remove_dynamic_routing(this);\"\n" +
     794                        "                     style=\"cursor:pointer; margin-left: 10px; color:red;\">\n" +
     795                        "\n" +
     796                        "                    löschen?\n" +
     797                        "                </div>"
     798                    "</div></td>";
     799
     800                    ap_dclogin_pages = document.querySelectorAll(".ap-dc-none");
     801                    var el = document.createElement("tr");
     802                    el.innerHTML = append;
     803                    ap_dclogin_pages[ap_dclogin_pages.length - 1].parentNode.insertBefore(el, ap_dclogin_pages[ap_dclogin_pages.length - 1].nextSibling);
     804
     805
     806                }
     807
     808
     809            </script>
     810
     811
     812        <?php } elseif ( $option_type === 'page' ) { ?>
     813            <div class="ap-dclogin--pages" style="display: none"></div>
     814        <?php } ?>
     815
     816
    375817        <?php if ( $description ) : ?>
    376818            <p class="description"><?php echo $description; ?></p>
     
    404846        return $options;
    405847    }
     848
     849    /**
     850     * Get pages for select.
     851     *
     852     * @return  array $options With available pages.
     853     * @since   1.0.7
     854     * @access  public
     855     */
     856
     857    private function dcl_get_form_occupational() {
     858
     859        $dcl_form_occupational_groups = $this->dcl_get_occupational_group();
     860
     861        return $dcl_form_occupational_groups;
     862    }
     863
     864
     865    /**
     866     * get profession grousp list.
     867     *
     868     *
     869     * @return array|mixed|object
     870     * @since   1.0.7
     871     */
     872    private function dcl_get_occupational_group() {
     873
     874
     875        $dcl_form_occupational_groups_en = [
     876            ''       => 'Please choose a professional group',
     877            '19'     => 'Alternative / Non-medical practitioner',
     878            '24'     => 'Bio technican | Medical technican',
     879            '17'     => 'Biochemist',
     880            '45'     => 'Biological / Chemical / Physical technical assistant',
     881            '14'     => 'Biologist',
     882            '100112' => 'Biomedical Scientist',
     883            '100108' => 'Biomedical Scientist',
     884            '1005'   => 'Business/ Management/ Economy',
     885            '15'     => 'Chemist',
     886            '73'     => 'Children\'s nurse',
     887            '69'     => 'Chiropractic',
     888            '100099' => 'Clinical trial assistant',
     889            '59'     => 'Company Password',
     890            '66'     => 'Dental assistant',
     891            '99116'  => 'Dental care profession (other)',
     892            '100119' => 'Dental care profession (other)',
     893            '70'     => 'Dental hygienist',
     894            '65'     => 'Dental technician / Mechanic',
     895            '4'      => 'Dentist',
     896            '67'     => 'Diabetes Advisor',
     897            '39'     => 'Dietetic Assistant',
     898            '5016'   => 'Dietician',
     899            '100238' => 'DocCheck Blogger',
     900            '99999'  => 'DocCheck Team',
     901            '10'     => 'Doctor\'s Receptionist/ Assistant',
     902            '68'     => 'Druggist (CH)',
     903            '35'     => 'Emergency medical technician [EMT]',
     904            '34'     => 'Emergency Paramedic',
     905            '99998'  => 'Employee DocCheck Shop',
     906            '100113' => 'Epidemiologist',
     907            '18'     => 'Ergotherapist',
     908            '11'     => 'Geriatric nurse',
     909            '3002'   => 'Health economist',
     910            '5007'   => 'Health official',
     911            '100040' => 'Hearing Care Professional',
     912            '104'    => 'Industry employee',
     913            '38'     => 'Insurance Company Employee',
     914            '1003'   => 'Intern pharmacist',
     915            '5100'   => 'Journalist',
     916            '42'     => 'Lawyer',
     917            '13'     => 'Librarian',
     918            '36'     => 'Management Consultant',
     919            '30'     => 'Medical advertising agency employee',
     920            '100115' => 'Medical Assistant (other)',
     921            '99110'  => 'Medical Assistant (other)',
     922            '46'     => 'Medical dealer',
     923            '41'     => 'Medical documentalist',
     924            '100098' => 'Medical educator',
     925            '100109' => 'Medical Engineer',
     926            '100114' => 'Medical Engineer',
     927            '22'     => 'Medical information scientist',
     928            '23'     => 'Medical journalist',
     929            '28'     => 'Medical laboratory assistant',
     930            '2004'   => 'Medical laboratory scientist (MLS)',
     931            '5014'   => 'Medical laboratory scientist radiology',
     932            '5019'   => 'Medical Photographer / Designer',
     933            '16'     => 'Medical physicist',
     934            '20'     => 'Midwife',
     935            '9999'   => 'Non-medical professions',
     936            '21'     => 'Nurse / Hospital nurse',
     937            '75'     => 'Nurse anesthetist',
     938            '3010'   => 'Nurse without degree',
     939            '58'     => 'Nursing and care management with diploma',
     940            '2003'   => 'Nursing Home Manager',
     941            '99112'  => 'Nursing profession (other)',
     942            '100116' => 'Nursing profession (other)',
     943            '5018'   => 'Nursing scientist',
     944            '100100' => 'Nursing teacher/ educationist',
     945            '100097' => 'Nutrition consultant',
     946            '53'     => 'Optician / Orthoptist',
     947            '72'     => 'Orderly / Ward assistant / Nurse assistant',
     948            '71'     => 'Orthoptics',
     949            '37'     => 'Other medical professions',
     950            '1008'   => 'Other (non-medical profession)',
     951            '10000'  => 'Patient',
     952            '2005'   => 'Pharmaceutical Assistant',
     953            '99113'  => 'Pharmaceutical profession (other)',
     954            '100096' => 'Pharmaceutical sales representative',
     955            '26'     => 'Pharmaceutical-Commercial employee',
     956            '25'     => 'Pharmaceutical-technical assistant',
     957            '2'      => 'Pharmacist',
     958            '1002'   => 'Pharmacist (employee)',
     959            '27'     => 'Pharmacy engineer',
     960            '1001'   => 'Pharmacy owner',
     961            '12'     => 'Pharmacy technician',
     962            '1004'   => 'Physical scientist',
     963            '1'      => 'Physician',
     964            '100111' => 'Physician Assistant',
     965            '100107' => 'Physician Assistant',
     966            '33'     => 'Physiotherapist',
     967            '100101' => 'Physiotherapist for animals',
     968            '3006'   => 'Podiatrist',
     969            '5013'   => 'Psychiatric nurse / Mental health nurse',
     970            '57'     => 'Psychological technical assistant',
     971            '31'     => 'Psychologist',
     972            '5020'   => 'Psychomotoric therapist',
     973            '32'     => 'Psychotherapist',
     974            '29'     => 'Publishing Company Employee',
     975            '3004'   => 'Radiology assistant',
     976            '1006'   => 'Scholar',
     977            '63'     => 'Speech therapist',
     978            '5'      => 'Student',
     979            '54'     => 'Student of animal health',
     980            '106'    => 'Student of dentistry',
     981            '105'    => 'Student of human medicine',
     982            '56'     => 'Student of pharmacy',
     983            '100073' => 'Student: Other study courses',
     984            '76'     => 'Surgical nurse',
     985            '5021'   => 'Surgical technician assistant',
     986            '1007'   => 'Technician',
     987            '99114'  => 'Therapist (other)',
     988            '100117' => 'Therapist (other)',
     989            '44'     => 'Toxicologist',
     990            '3'      => 'Veterinary',
     991            '5010'   => 'Veterinary healer',
     992            '100118' => 'Veterinary profession (other)',
     993            '99115'  => 'Veterinary profession (other)',
     994            '5017'   => 'Veterinary\'s assistant'
     995        ];
     996
     997
     998        $dcl_form_occupational_groups_de = [
     999            ''       => 'Bitte wählen Sie eine Berufsgruppe',
     1000            '11'     => 'Altenpfleger/in',
     1001            '75'     => 'Anästhesiepfleger/in',
     1002            '1002'   => 'Angestellte/r Apotheker/in',
     1003            '42'     => 'Anwalt',
     1004            '12'     => 'Apothekenhelfer/in',
     1005            '2'      => 'Apotheker/in',
     1006            '1'      => 'Arzt | Ärztin',
     1007            '100107' => 'Arztassistent/in',
     1008            '100111' => 'Arztassistent/in (Physician Assistant)',
     1009            '53'     => 'Augenoptiker/in | Orthoptist/in',
     1010            '5007'   => 'Beamter im Gesundheitswesen',
     1011            '13'     => 'Bibliothekar',
     1012            '17'     => 'Biochemiker/in | Pharmakologe/in | Toxikologe/in',
     1013            '14'     => 'Biologe',
     1014            '1004'   => 'Biologe/in | Chemiker/in | Naturwissenschaftler/in',
     1015            '2004'   => 'Biologie-Laborant/in | Chemie-Laborant/in',
     1016            '45'     => 'Biologisch- | Chemisch- | Physikalisch-technische/r Assistent/in',
     1017            '100112' => 'Biomediziner/in',
     1018            '100108' => 'Biomediziner/in',
     1019            '24'     => 'Biotechniker/in | Medizintechniker/in',
     1020            '15'     => 'Chemiker',
     1021            '69'     => 'Chiropraktiker/in | Osteopath/in',
     1022            '70'     => 'Dentalhygieniker',
     1023            '67'     => 'Diabetesberater/in',
     1024            '39'     => 'Diätassistent/in',
     1025            '100238' => 'DocCheck Blogger',
     1026            '99998'  => 'DocCheck Shop Team',
     1027            '99999'  => 'DocCheck Team',
     1028            '68'     => 'Drogist/in (CH)',
     1029            '100113' => 'Epidemiologe/in',
     1030            '18'     => 'Ergotherapeut/in',
     1031            '100097' => 'Ernährungsberater/in',
     1032            '5016'   => 'Ernährungswissenschaftler/in | Ökotrophologe/in',
     1033            '59'     => 'Firmenpasswort',
     1034            '1006'   => 'Geisteswissenschaftler/in',
     1035            '73'     => 'Gesundheits- und Kinderkrankenpfleger/in',
     1036            '21'     => 'Gesundheits- und Krankenpfleger/in',
     1037            '3002'   => 'Gesundheitsökonom/in | Gesundheitsmanager/in | Gesundheitswissenschaftler/in',
     1038            '20'     => 'Hebamme | Entbindungspfleger',
     1039            '19'     => 'Heilpraktiker/in',
     1040            '100040' => 'Hörakustiker/in',
     1041            '5100'   => 'Journalist',
     1042            '100099' => 'Klinischer Monitor | Mitarbeiter/in klinische Studien',
     1043            '72'     => 'Krankenpflegehelfer',
     1044            '3010'   => 'Krankenpfleger ohne Abschluss',
     1045            '5013'   => 'Krankenpfleger/in Psychiatrie',
     1046            '63'     => 'Logopäde/in | Sprachtherapeut/in',
     1047            '5019'   => 'Medizinfotograf/in | Designer/in',
     1048            '22'     => 'Medizininformatiker/in',
     1049            '100114' => 'Mediziningenieur/in',
     1050            '100109' => 'Mediziningenieur/in',
     1051            '99110'  => 'Medizinische(r)      Assistent/in (sonstige)',
     1052            '100115' => 'Medizinische/r Assistent/in (sonstige)',
     1053            '41'     => 'Medizinische/r Dokumentar/in',
     1054            '10'     => 'Medizinische/r Fachangestellte/r',
     1055            '46'     => 'Medizinische/r Fachhändler/in (Arzneimittel)',
     1056            '28'     => 'Medizinisch-technische/r Assistent/in',
     1057            '5014'   => 'Medizinisch-technischer Radiologieassistent',
     1058            '23'     => 'Medizinjournalist/in',
     1059            '100098' => 'Medizinpädagoge/in',
     1060            '16'     => 'Medizinphysiker/in',
     1061            '104'    => 'Mitarbeiter/in Industrie | Agentur',
     1062            '29'     => 'Mitarbeiter/in medizinische Verlage',
     1063            '30'     => 'Mitarbeiter/in Pharmaagentur',
     1064            '38'     => 'Mitarbeiter/in Versicherung',
     1065            '5020'   => 'Motopäde/in | Mototherapeut/in',
     1066            '9999'   => 'Nichtmedizinischer Beruf',
     1067            '34'     => 'Notfallsanitäter/in',
     1068            '5021'   => 'Operationstechnische/r Assistent/in | Chirurgische/r Assistent/in',
     1069            '76'     => 'OP-Pfleger/in',
     1070            '71'     => 'Orthoptist',
     1071            '10000'  => 'Patient',
     1072            '100116' => 'Pflegeberuf (sonstige)',
     1073            '99112'  => 'Pflegeberuf (sonstige)',
     1074            '2003'   => 'Pflegedienstleiter/in | Pflegeheimleiter/in',
     1075            '5018'   => 'Pflegemanager/in | Pflegewissenschaftler/in',
     1076            '100100' => 'Pflegepädagoge',
     1077            '58'     => 'Pflegewirt/in',
     1078            '2005'   => 'Pharmaassistent/in',
     1079            '100096' => 'Pharmaberater/in | Pharmareferent/in',
     1080            '1003'   => 'Pharmazeut/in | Pharmazie-Praktikant/in',
     1081            '26'     => 'Pharmazeutisch-kaufmännische/r Angestellte/r (PKA)',
     1082            '25'     => 'Pharmazeutisch-technische/r Assistent/in (PTA)',
     1083            '40'     => 'Pharmazieberuf (sonstige)',
     1084            '99113'  => 'Pharmazieberuf (sonstige)',
     1085            '27'     => 'Pharmazieingenieur/in',
     1086            '33'     => 'Physiotherapeut/in',
     1087            '3006'   => 'Podologe/in | Medizinische/r Fußpfleger/in',
     1088            '3007'   => 'Profession d\'appareillage',
     1089            '31'     => 'Psychologe/in',
     1090            '57'     => 'Psychologische/r Assistent/in | Psychologische/r Berater/in',
     1091            '32'     => 'Psychotherapeut/in',
     1092            '3004'   => 'Radiologieassistent',
     1093            '35'     => 'Rettungssanitäter/in',
     1094            '1001'   => 'Selbstst. Apotheker/in',
     1095            '1008'   => 'Sonstige (nichtmedizinischer Beruf)',
     1096            '5'      => 'Student/in',
     1097            '100073' => 'Student/in (andere Fächer)',
     1098            '105'    => 'Student/in der Humanmedizin',
     1099            '56'     => 'Student/in der Pharmazie',
     1100            '54'     => 'Student/in der Tiermedizin',
     1101            '106'    => 'Student/in der Zahnmedizin',
     1102            '1007'   => 'Techniker/in, IT',
     1103            '99114'  => 'Therapeut (sonstige)',
     1104            '100117' => 'Therapeutischer Beruf (sonstige)',
     1105            '3'      => 'Tierarzt | Tierärztin',
     1106            '5010'   => 'Tierheilpraktiker/in',
     1107            '100118' => 'Tiermedizinischer Beruf (sonstige)',
     1108            '99115'  => 'Tiermedizinischer Beruf (sonstige)',
     1109            '5017'   => 'Tiermedizinische/r Fachangestellte/r',
     1110            '100101' => 'Tierphysiotherapeut/in',
     1111            '44'     => 'Toxikologe',
     1112            '36'     => 'Unternehmensberater/in',
     1113            '37'     => 'Weitere medizinische Berufe',
     1114            '1005'   => 'Wirtschaftswissenschaftler/in',
     1115            '4'      => 'Zahnarzt | Zahnärztin',
     1116            '100119' => 'Zahnmedizinischer Beruf (sonstige)',
     1117            '99116'  => 'Zahnmedizinischer Beruf (sonstige)',
     1118            '66'     => 'Zahnmedizinische/r Fachangestellte/r | Dentalhygieniker/in',
     1119            '65'     => 'Zahn'
     1120        ];
     1121
     1122        if ( get_locale() === 'de_DE' ) {
     1123            $array = $dcl_form_occupational_groups_de;
     1124        } else {
     1125            $array = $dcl_form_occupational_groups_en;
     1126        }
     1127
     1128        return $array;
     1129    }
     1130
    4061131}
  • doccheck-login/tags/1.0.7/client/class-dcl-client.php

    r2157146 r2340421  
    105105                }
    106106            }
     107        } elseif ( $filter_menus && true === $this->dcl_has_logged_in_user() ) {
     108
     109            foreach ( $items as $key => $item ) {
     110                $group_restriction  = get_post_meta( $item->object_id, 'dcl_group_routing', true );
     111                $access_restriction = get_post_meta( $item->object_id, 'dcl_restrict_access', true );
     112                $occupation_id      = $_SESSION['pro_id'];
     113
     114                if ( $group_restriction != "" && $access_restriction === 'on' ) {
     115
     116
     117                    if ( is_array( $occupation_id ) ) {
     118                        if ( empty( array_intersect( $occupation_id, $group_restriction ) ) ) {
     119
     120                            unset( $items[ $key ] );
     121
     122                        }
     123
     124                    } else {
     125
     126                        if ( ! in_array( $occupation_id, $group_restriction ) ) {
     127                            unset( $items[ $key ] );
     128                        }
     129
     130                    }
     131                }
     132
     133            }
    107134        }
    108135
    109136        return $items;
     137    }
     138
     139    /**
     140     * Filter menu items.
     141     *
     142     * If user checked the option, this function will filter
     143     * out all access restricted pages from menus.
     144     *
     145     * @param  $content
     146     *
     147     * @return mixed
     148     * @since   1.0.0
     149     * @access  public
     150     */
     151    public function dcl_restricted_content( $content ) {
     152        // Check if we're inside the main loop in a single Post.
     153        if ( ( is_page() || is_singular() ) && in_the_loop() && is_main_query() && $_SESSION['restricted'] ) {
     154            return 'You cannot enter this page, as it is only accessible to particular professions. Click <a href="' . $this->dcl_get_professionals_permalink() . '">here</a> to get back.';
     155        }
     156
     157        return $content;
    110158    }
    111159
     
    120168     */
    121169    public function dcl_access_redirect() {
     170        global $post;
     171
     172        $group_resitiction = get_post_meta( $post->ID, 'dcl_group_routing', true );
     173
    122174
    123175        // Skip ahead if page is not access restricted
     
    136188                $this->dcl_do_login();
    137189            } else {
    138                 return;
     190
     191                $occupation_id = $_SESSION['pro_id'];
     192
     193                //if routing option is not aktiviert reset the page filtering
     194                if ( ! get_option( 'dcl_general_profession_routing_active' ) ) {
     195                    update_post_meta( get_the_ID(), 'dcl_group_routing', '' );
     196                    update_post_meta( get_the_ID(), 'dcl_all_group', '' );
     197                }
     198                $redirect_url = $this->dcl_get_restricted_redirect_permalink();
     199
     200
     201                if ( is_array( $occupation_id ) ) {
     202                    if ( ! empty( array_intersect( $occupation_id, get_post_meta( get_the_ID(), 'dcl_group_routing', true ) ) ) || get_post_meta( get_the_ID(), 'dcl_group_routing', true ) == "" ) {
     203                        return;
     204                    } else {
     205
     206                        wp_redirect( $redirect_url );
     207                        exit();
     208
     209                    }
     210                } else {
     211
     212                    if ( in_array( $occupation_id, get_post_meta( get_the_ID(), 'dcl_group_routing', true ) ) || get_post_meta( get_the_ID(), 'dcl_group_routing', true ) == "" ) {
     213                        return;
     214                    } else {
     215
     216                        wp_redirect( $redirect_url );
     217                        exit();
     218                    }
     219
     220                }
     221
     222
    139223            }
    140224        }
     
    148232        // this page should be protected by the DocCheck login
    149233        $this->dcl_redirect_to_login();
     234    }
     235
     236    public function register_my_session() {
     237        if ( ! session_id() ) {
     238            session_start();
     239        }
    150240    }
    151241
     
    170260            }
    171261
     262            $number_of_occupations = get_option( 'dcl_general_add_profession_routing' );
     263            $occupation_activated  = get_option( 'dcl_general_profession_routing_active' );
     264
     265            $occupations_routing       = [];
     266            $occupations_routing_first = [];
     267
     268            if ( $occupation_activated ) {
     269                $occupations_routing_first = array(
     270                    'occupation_id'       => get_option( 'dcl_general_jobs' ),
     271                    'occupation_redirect' => get_option( 'dcl_general_pages' )
     272                );
     273
     274                for ( $i = 0; $i < $number_of_occupations; $i ++ ) {
     275                    $occupations_routing[ $i ] = array(
     276
     277                        'occupation_id'       => get_option( 'dcl_general_jobs' . $i ),
     278                        'occupation_redirect' => get_option( 'dcl_general_pages' . $i )
     279                    );
     280                }
     281
     282                array_push( $occupations_routing, $occupations_routing_first );
     283
     284            }
     285
     286
    172287            // Get login code from request
    173288            $login_code = isset( $_GET['code'] ) ? sanitize_text_field( $_GET['code'] ) : null;
     289
     290            // get the user occupation_id and parent id
     291            $occupation_profession_id        = isset( $_GET['dc_profession_id'] ) ? sanitize_text_field( $_GET['dc_profession_id'] ) : null;
     292            $occupation_profession_parent_id = isset( $_GET['dc_profession_parent_id'] ) ? sanitize_text_field( $_GET['dc_profession_parent_id'] ) : null;
    174293
    175294            // Send POST request to DocCheck oauth service
     
    180299            );
    181300
     301
    182302            // Success
    183303            // Received access token
     
    186306                $this->dcl_set_session_token( $response->access_token );
    187307
     308                if ( ! session_id() ) {
     309                    session_start();
     310                }
     311
     312                if ( $occupation_profession_parent_id != null ) {
     313
     314                    if ( $occupation_profession_parent_id === $occupation_profession_id ) {
     315                        $occupation_id = $occupation_profession_id;
     316
     317                        $_SESSION['pro_id'] = $occupation_profession_id;
     318                    } else {
     319                        $occupation_id      = array( $occupation_profession_parent_id, $occupation_profession_id );
     320                        $_SESSION['pro_id'] = array( $occupation_profession_parent_id, $occupation_profession_id );
     321                    }
     322                } else {
     323                    $_SESSION['pro_id'] = $occupation_profession_id;
     324                }
     325
     326                foreach ( $occupations_routing as $item ) {
     327
     328
     329                    if ( is_array( $occupation_id ) ) {
     330
     331                        if ( ! empty( array_intersect( $occupation_id, $item ) ) ) {
     332                            $redirect_id = $item['occupation_redirect'];
     333                        }
     334
     335                    } else {
     336
     337                        if ( in_array( $occupation_id, $item ) ) {
     338                            $redirect_id = $item['occupation_redirect'];
     339                        }
     340
     341                    }
     342                }
     343
     344
    188345                // Remove parameters from URL
    189                 wp_redirect( get_permalink() );
     346                wp_redirect( get_permalink( $redirect_id ) );
    190347                exit;
    191348            }
     
    278435    }
    279436
     437
     438    private function dcl_request_userdata( $saved_access_token ) {
     439        $curl = curl_init( self::DCL_OAUTH_SERVICE_USERDATA . '?access_token=' . $saved_access_token );
     440        curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
     441
     442        $auth = curl_exec( $curl );
     443
     444        return json_decode( $auth );
     445    }
     446
     447
    280448    /**
    281449     * Request access token validation
  • doccheck-login/tags/1.0.7/dc-login.php

    r2239647 r2340421  
    1919 * Plugin Name:       DocCheck Login
    2020 * Description:       The official DocCheck plug-in enables the authentication of certified healthcare professionals and facilitates the integration of the DocCheck login.
    21  * Version:           1.0.6
     21 * Version:           1.0.7
    2222 * Author:            antwerpes ag <[email protected]>
    2323 * Author URI:        https://antwerpes.com
  • doccheck-login/tags/1.0.7/includes/class-dcl-activator.php

    r1722433 r2340421  
    3434                [
    3535                    'post_content'   => '[dc-login]',
    36                     'post_name'      => 'doccheck-login',
     36                    'post_name'      => 'restricted-login',
    3737                    'post_title'     => __( 'DocCheck Login', 'doccheck-login' ),
    3838                    'post_status'    => 'publish',
     
    5151            update_option( 'dcl_general_login_page_id', $login_page[0]->ID );
    5252        }
     53
     54
     55        $restricted_redirect_page = get_posts( [
     56            'name'        => 'doccheck-redirect',
     57            'post_type'   => 'page',
     58            'numberposts' => 1
     59        ] );
     60
     61        if ( empty( $restricted_redirect_page ) ) { // If it doesn't exist...
     62            // Create login page
     63            $restricted_redirect_page_id = wp_insert_post(
     64                [
     65                    'post_content'   => "You cannot enter this page, as it is only accessible to particular professions. Click <a href=\"" . home_url() . "\">here</a> to get back.",
     66                    'post_name'      => 'restricted-redirect',
     67                    'post_title'     => __( 'DocCheck Access Restricted', 'doccheck-redirect' ),
     68                    'post_status'    => 'publish',
     69                    'post_type'      => 'page',
     70                    'ping_status'    => 'closed',
     71                    'comment_status' => 'closed',
     72                ]
     73            );
     74
     75            // Set login page id
     76            if ( is_int( $restricted_redirect_page_id ) ) {
     77                update_option( 'dcl_general_redirect_page_id', $restricted_redirect_page_id );
     78            }
     79        } elseif ( isset( $restricted_redirect_page[0] ) ) { // If it already exist...
     80            // Set login page id
     81            update_option( 'dcl_general_redirect_page_id', $restricted_redirect_page[0]->ID );
     82        }
    5383    }
    5484}
  • doccheck-login/tags/1.0.7/includes/class-dcl-base.php

    r2239640 r2340421  
    4444
    4545    /**
     46     * OAuth serivce url.
     47     *
     48     * @since   1.0.0
     49     */
     50    const DCL_OAUTH_SERVICE_USERDATA = 'https://login.doccheck.com/service/oauth/user_data/';
     51
     52    /**
    4653     * Check token url.
    4754     *
     
    5966     */
    6067    protected $dcl_page_login_id;
     68
     69    /**
     70     * Page to redirect occupation group.
     71     *
     72     *
     73     * @since   1.0.0
     74     * @access  protected
     75     * @var     string
     76     */
     77    protected $dcl_page_redirect_id;
    6178
    6279    /**
     
    8299        'xl_red' => 'XL',
    83100    ];
     101
    84102
    85103    /**
     
    133151    public function __construct() {
    134152        $this->dcl_page_login_id                = get_option( 'dcl_general_login_page_id', 0 );
     153        $this->dcl_page_redirect_id                = get_option( 'dcl_general_redirect_page_id', 0 );
    135154        $this->dcl_page_professional_circles_id = get_option( 'dcl_general_professional_circles_page_id', 0 );
    136155    }
     
    184203        // Make sure we have a post object to work with
    185204        // Exclude 404, search and login page from access restriction
    186         if ( ! $post || is_404() || is_search() || is_page( $this->dcl_page_login_id ) ) {
     205        if ( ! $post || is_404() || is_search() || is_page( $this->dcl_page_login_id ) || is_page( $this->dcl_page_redirect_id ) ) {
    187206            return false;
    188207        }
    189208
    190209        $access_restricted = get_post_meta( $post->ID, 'dcl_restrict_access', true );
    191        
     210
    192211        if ( $access_restricted === 'on' ) {
    193212            return true;
     
    237256
    238257    /**
     258     * Get permalink to redirect page, when user is logged in but access to a page is restricted.
     259     *
     260     * @return  string $redirect_url
     261     * @since   1.0.0
     262     * @access  public
     263     */
     264    public function dcl_get_restricted_redirect_permalink() {
     265        // Get url for login page or home as fallback
     266        if ( (int) $this->dcl_page_redirect_id > 0 ) {
     267            $redirect_url = get_permalink( $this->dcl_page_redirect_id );
     268        } else {
     269            $redirect_url = home_url();
     270        }
     271
     272        return $redirect_url;
     273    }
     274
     275    /**
    239276     * Get permalink to professionals page.
    240277     *
     
    342379    public function dcl_get_session_redirect_url() {
    343380        if ( isset( $_SESSION['dc_login_redirect_url'] ) && ! empty( $_SESSION['dc_login_redirect_url'] ) ) {
    344             // Formerly targeted page will be used to redirect to 
     381            // Formerly targeted page will be used to redirect to
    345382            return $_SESSION['dc_login_redirect_url'];
    346383        } else if ( (int) $this->dcl_page_professional_circles_id > 0 ) {
     
    348385            return get_permalink( $this->dcl_page_professional_circles_id );
    349386        }
    350        
     387
    351388        return home_url();
    352389    }
  • doccheck-login/tags/1.0.7/includes/class-dcl.php

    r2239641 r2340421  
    6666
    6767        $this->plugin_name = 'dc-login';
    68         $this->version     = '1.0.6';
     68        $this->version     = '1.0.7';
    6969
    7070        $this->set_loader();
     
    128128        $this->loader->add_action( 'add_meta_boxes', $plugin_admin_meta_boxes, 'dcl_register_meta_boxes_custom_post_type' );
    129129        $this->loader->add_action( 'save_post', $plugin_admin_meta_boxes, 'dcl_save_meta_boxes' );
     130        $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin_meta_boxes, 'enqueue_styles' );
     131        $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin_meta_boxes, 'enqueue_scripts' );
    130132
    131133        // Columns
     
    158160
    159161        $this->loader->add_action( 'init', $plugin_public, 'dcl_start_session' );
     162        $this->loader->add_action( 'init', $plugin_public, 'register_my_session' );
    160163        $this->loader->add_action( 'pre_get_posts', $plugin_public, 'dcl_filter_search_results' );
    161164        $this->loader->add_filter( 'wp_get_nav_menu_items', $plugin_public, 'dcl_filter_menus' );
  • doccheck-login/tags/1.0.7/languages/doccheck-login-de_DE.po

    r1722433 r2340421  
    22msgstr ""
    33"Project-Id-Version: DocCheck Login\n"
    4 "POT-Creation-Date: 2017-07-19 09:08+0200\n"
    5 "PO-Revision-Date: 2017-08-31 08:48+0200\n"
     4"POT-Creation-Date: 2020-06-15 13:33+0200\n"
     5"PO-Revision-Date: 2020-07-14 15:54+0200\n"
    66"Last-Translator: \n"
    77"Language-Team: antwerpes ag <[email protected]>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "X-Generator: Poedit 1.8.11\n"
     12"X-Generator: Poedit 2.3.1\n"
    1313"X-Poedit-Basepath: ..\n"
    1414"Plural-Forms: nplurals=2; plural=(n != 1);\n"
     
    2424msgstr "Zugangsbeschränkung"
    2525
    26 #: admin/class-dcl-metaboxes.php:25 admin/class-dcl-settings.php:44
    27 #: admin/class-dcl-settings.php:45 admin/class-dcl-settings.php:60
    28 #: includes/class-dcl-activator.php:37
     26#: admin/class-dcl-metaboxes.php:72 admin/class-dcl-metaboxes.php:86
     27#: admin/class-dcl-settings.php:45 admin/class-dcl-settings.php:46
     28#: admin/class-dcl-settings.php:61 includes/class-dcl-activator.php:37
    2929msgid "DocCheck Login"
    3030msgstr "DocCheck Login"
    3131
    32 #: admin/class-dcl-metaboxes.php:44
     32#: admin/class-dcl-metaboxes.php:129
    3333msgid "Restrict access with login"
    3434msgstr "Zugang durch Login beschränken"
    3535
    36 #: admin/class-dcl-settings.php:81
     36#: admin/class-dcl-metaboxes.php:140
     37msgid "All approved professions"
     38msgstr "Alle zugelassenen Berufsgruppen"
     39
     40#: admin/class-dcl-metaboxes.php:145
     41msgid "Please select a profession"
     42msgstr "Bitte wählen Sie eine Berufsgruppe"
     43
     44#: admin/class-dcl-settings.php:173
    3745msgid "First steps"
    3846msgstr "Erste Schritte"
    3947
    40 #: admin/class-dcl-settings.php:83
     48#: admin/class-dcl-settings.php:175
    4149msgid "In order for this plugin to work you'll need:"
    4250msgstr "Damit das Plugin ordnungsgemäß funktioniert, benötigst Du:"
    4351
    44 #: admin/class-dcl-settings.php:85
     52#: admin/class-dcl-settings.php:177
    4553#, php-format
    4654msgid ""
     
    5159"Flexikon</a>)."
    5260
    53 #: admin/class-dcl-settings.php:86
     61#: admin/class-dcl-settings.php:178
    5462#, php-format
    5563msgid ""
     
    6068"Login ID um ein Client Secret zu erhalten."
    6169
    62 #: admin/class-dcl-settings.php:87
     70#: admin/class-dcl-settings.php:179
    6371msgid ""
    6472"Note that we recommend exchange of the secret via a secure communications "
     
    6977"Deine Telefonnummer mit."
    7078
    71 #: admin/class-dcl-settings.php:89
     79#: admin/class-dcl-settings.php:181
    7280#, php-format
    7381msgid ""
     
    8088"\"%1$s\" target=\"_blank\">%2$s</a>)."
    8189
    82 #: admin/class-dcl-settings.php:96
     90#: admin/class-dcl-settings.php:188
    8391msgid "Shortcodes"
    8492msgstr "Shortcodes"
    8593
    86 #: admin/class-dcl-settings.php:98
     94#: admin/class-dcl-settings.php:190
    8795msgid "There are a few shortcods available:"
    8896msgstr "Es stehen ein paar Shortcodes zur Verfügung:"
    8997
    90 #: admin/class-dcl-settings.php:100
     98#: admin/class-dcl-settings.php:192
    9199msgid "Login form"
    92100msgstr "Login-Formular"
    93101
    94 #: admin/class-dcl-settings.php:103
     102#: admin/class-dcl-settings.php:195
    95103msgid "Logout link"
    96104msgstr "Logout-Link"
    97105
    98 #: admin/class-dcl-settings.php:106
     106#: admin/class-dcl-settings.php:198
    99107msgid "HTML sitemap"
    100108msgstr "HTML Sitemap"
    101109
    102 #: admin/class-dcl-settings.php:108
     110#: admin/class-dcl-settings.php:200
    103111msgid ""
    104112"Displays sitemap with or without access restricted pages, depending on the "
     
    108116"ob der User eingeloggt ist."
    109117
    110 #: admin/class-dcl-settings.php:110
     118#: admin/class-dcl-settings.php:202
    111119msgid "Hide content"
    112120msgstr "Inhalt verstecken"
    113121
    114 #: admin/class-dcl-settings.php:112
     122#: admin/class-dcl-settings.php:204
    115123msgid "Hides content for users that are not logged in via DocCheck."
    116124msgstr ""
     
    118126"haben."
    119127
    120 #: admin/class-dcl-settings.php:130
     128#: admin/class-dcl-settings.php:233
    121129msgid "General"
    122130msgstr "Allgemein"
    123131
    124 #: admin/class-dcl-settings.php:137
     132#: admin/class-dcl-settings.php:240
    125133msgid "Form presets"
    126134msgstr "Login-Formular Voreinstellungen"
    127135
    128 #: admin/class-dcl-settings.php:147
     136#: admin/class-dcl-settings.php:329
    129137msgid "Login id"
    130138msgstr "Login ID"
    131139
    132 #: admin/class-dcl-settings.php:153
     140#: admin/class-dcl-settings.php:335
    133141msgid "Login id (debug mode)"
    134142msgstr "Login ID (Debugmodus)"
    135143
    136 #: admin/class-dcl-settings.php:159
     144#: admin/class-dcl-settings.php:341
    137145msgid "Client secret"
    138146msgstr "Client Secret"
    139147
    140 #: admin/class-dcl-settings.php:165
     148#: admin/class-dcl-settings.php:347
    141149msgid "Client secret (debug mode)"
    142150msgstr "Client Secret (Debugmodus)"
    143151
    144 #: admin/class-dcl-settings.php:171
     152#: admin/class-dcl-settings.php:353
    145153msgid "Login page"
    146154msgstr "Login-Seite"
    147155
    148 #: admin/class-dcl-settings.php:181
     156#: admin/class-dcl-settings.php:363
    149157msgid "Target page"
    150158msgstr "Ziel-Seite"
    151159
    152 #: admin/class-dcl-settings.php:191
     160#: admin/class-dcl-settings.php:375
     161msgid "Profession routing"
     162msgstr "Berufsgruppen-Routing"
     163
     164#: admin/class-dcl-settings.php:379
     165msgid "activated"
     166msgstr "aktiviert"
     167
     168#: admin/class-dcl-settings.php:384
     169msgid "'Profession group restricted' redirect page"
     170msgstr "'Zugriff für Berufsgruppe nicht erlaubt' Umleitungsseite"
     171
     172#: admin/class-dcl-settings.php:394
     173msgid "Add  profession routing"
     174msgstr "Berufsgruppe hinzufügen"
     175
     176#: admin/class-dcl-settings.php:432
    153177msgid "Menu items"
    154178msgstr "Menüelemente"
    155179
    156 #: admin/class-dcl-settings.php:195
     180#: admin/class-dcl-settings.php:436
    157181msgid "Hide access restricted page from menus"
    158182msgstr "Zugangsbeschränkte Seiten nicht im Menü anzeigen"
    159183
    160 #: admin/class-dcl-settings.php:201
     184#: admin/class-dcl-settings.php:443
    161185msgid "Size"
    162186msgstr "Größe"
    163187
    164 #: admin/class-dcl-settings.php:210
     188#: admin/class-dcl-settings.php:452
    165189msgid "Language"
    166190msgstr "Sprache"
    167191
    168 #: admin/class-dcl-settings.php:219
     192#: admin/class-dcl-settings.php:461
     193msgid "Language (WPML)"
     194msgstr "Sprache (WPML)"
     195
     196#: admin/class-dcl-settings.php:465
     197msgid "Set language automatically using WPML"
     198msgstr "Sprache automatisch mit WPML setzen"
     199
     200#: admin/class-dcl-settings.php:470
    169201msgid "Custom template"
    170202msgstr "Benutzerdefiniertes Template"
    171203
    172 #: admin/class-dcl-settings.php:225
     204#: admin/class-dcl-settings.php:476
    173205msgid "Custom template width"
    174206msgstr "Template Breite"
    175207
    176 #: admin/class-dcl-settings.php:231
     208#: admin/class-dcl-settings.php:482
    177209msgid "Custom template height"
    178210msgstr "Template Höhe"
    179211
    180 #: admin/class-dcl-settings.php:384
     212#: admin/class-dcl-settings.php:824
    181213msgid "Front Page"
    182214msgstr "Startseite"
    183215
    184 #: client/class-dcl-shortcodes.php:66
     216#: client/class-dcl-shortcodes.php:93
    185217msgid "No DocCheck login id given."
    186218msgstr "Es wurde keine DocCheck Login ID angegeben."
    187219
    188 #: client/class-dcl-shortcodes.php:91
     220#: client/class-dcl-shortcodes.php:130
    189221msgid "You're already logged in."
    190222msgstr "Sie sind bereits eingeloggt."
    191223
    192 #: client/class-dcl-shortcodes.php:102
     224#: client/class-dcl-shortcodes.php:141
    193225msgid "Login"
    194226msgstr "Login"
    195227
    196 #: client/class-dcl-shortcodes.php:129
     228#: client/class-dcl-shortcodes.php:168
    197229msgid "Logout"
    198230msgstr "Logout"
    199 
    200 #~ msgid ""
    201 #~ "DocCheck Login plugin created a <a href=\"$1%s\">login page</a> for you, "
    202 #~ "but some configuration is still required. Visit the <a href=\"$2%s"
    203 #~ "\">settings page</a>."
    204 #~ msgstr ""
    205 #~ "DocCheck Login hat eine <a href=\"$1%s\">Login-Seite</a> für Dich "
    206 #~ "erstellt, aber es müssen noch weitere Einstellungen getroffen werden. "
    207 #~ "Besuche die <a href=\"$2%s\">Einstellungen</a>."
    208 
    209 #~ msgid ""
    210 #~ "DocCheck Login will use your existing <a href=\"$1%s\">login page</a>, "
    211 #~ "but some configuration is still required. Visit the <a href=\"$2%s"
    212 #~ "\">settings page</a>."
    213 #~ msgstr ""
    214 #~ "DocCheck Login benutzt Deine existierende <a href=\"$1%s\">Login-Seite</"
    215 #~ "a>, aber es müssen noch weitere Einstellungen getroffen werden. Besuche "
    216 #~ "die <a href=\"$2%s\">Einstellungen</a>."
    217 
    218 #~ msgid ""
    219 #~ "DocCheck Login could't create a login page. Please <a href=\"%s"
    220 #~ "\">configure the plugin</a>."
    221 #~ msgstr ""
    222 #~ "DocCheck Login konnte keine Login-Seite anlegen. Besuche bitte die <a "
    223 #~ "href=\"%s\">Einstellungen</a> um das Plugin zu konfigurieren."
    224 
    225 #~ msgid ""
    226 #~ "Fill in the form below according to the information given by the DocCheck "
    227 #~ "login administration backend (see <a href=\"%1$s\">%2$s</a>)."
    228 #~ msgstr ""
    229 #~ "Fülle das unten stehende Formular entsprechend der Informationen aus, die "
    230 #~ "Du in der Administration (siehe <a href=\"%1$s\">%2$s</a>) Deines "
    231 #~ "DocCheck Logins erhalten hast."
    232 
    233 #~ msgid ""
    234 #~ "Fill in the form below according to the information given by the DocCheck "
    235 #~ "login administration backend."
    236 #~ msgstr ""
    237 #~ "Fülle das unten stehende Formular entsprechend der Informationen aus, die "
    238 #~ "Du in der Administration Deines DocCheck Logins erhalten hast."
    239 
    240 #~ msgid "Html sitemap"
    241 #~ msgstr "HTML Sitemap"
    242 
    243 #~ msgid "Form"
    244 #~ msgstr "Formular"
  • doccheck-login/tags/1.0.7/languages/doccheck-login.pot

    r1722433 r2340421  
     1#, fuzzy
    12msgid ""
    23msgstr ""
    34"Project-Id-Version: DocCheck Login\n"
    4 "POT-Creation-Date: 2017-08-31 08:12+0200\n"
     5"POT-Creation-Date: 2020-05-29 18:24+0200\n"
    56"PO-Revision-Date: 2017-08-31 08:12+0200\n"
    67"Last-Translator: \n"
     
    1011"Content-Type: text/plain; charset=UTF-8\n"
    1112"Content-Transfer-Encoding: 8bit\n"
    12 "X-Generator: Poedit 1.8.11\n"
     13"X-Generator: Poedit 2.3.1\n"
    1314"X-Poedit-Basepath: ../../../doccheck-login\n"
    1415"Plural-Forms: nplurals=2; plural=(n != 1);\n"
     
    173174#: tags/1.0.0/admin/class-dcl-settings.php:195
    174175#: trunk/admin/class-dcl-settings.php:195
     176msgid "Occupational groups-Routing"
     177msgstr "Berufsgruppen-Routing"
     178
     179#: tags/1.0.0/admin/class-dcl-settings.php:195
     180#: trunk/admin/class-dcl-settings.php:195
    175181msgid "Hide access restricted page from menus"
    176182msgstr ""
     
    225231msgid "Logout"
    226232msgstr ""
     233
     234msgid "Profession routing"
     235msgstr "Berufsgruppen-Routing"
     236
     237msgid "activated"
     238msgstr "aktiviert"
     239
     240msgid "Add profession routing"
     241msgstr "Berufsgruppe hinzufügen"
     242
     243msgid "All approved professional groups"
     244msgstr "Alle zugelassenen Berufsgruppen"
     245
     246msgid "Please choose a professional group"
     247msgstr "Bitte wählen Sie eine Berufsgruppe"
     248
     249#: admin/class-dcl-settings.php:384
     250msgid "'Profession group restricted' redirect page"
     251msgstr "'Zugriff für Berufsgruppe nicht erlaubt' Umleitungsseite"
Note: See TracChangeset for help on using the changeset viewer.