text:
Journal of Clinical Gastroenterology and Hepatology brings articles on half yearly basis. Journal of Clinical Gastroenterology and Hepatology welcomes the submission of manuscripts in the field of Journal of Clinical Gastroenterology and Hepatology functional gastrointestinal disorders, nutrition, absorption, and secretion clinical gastroenterology. Papers will be published approximately 15 days after acceptance.
As a member of Publisher International Linking Association, PILA, Prime Scholars Group's Journal of Clinical Gastroenterology and Hepatology follows the Creative Commons Attribution License and clinical gastroenterologyd Scholars Open Access publishing policies. Journal of Clinical Gastroenterology and Hepatology is the Council Contributor Member for Council of Science Editors (CSE) and follows the CSE's slogan 'Education, Ethics, and Evidence for Editors'.
Author may submit your papers online at Online Submission System (or) send as an e-mail attachment to editorial office at email@example.com
A manuscript number will be E-mailed to the corresponding author within 72 hours.
Publication Ethics and Malpractice Statement
Prime Scholars Policy Regarding the NIH Mandate
Prime Scholars will support authors by posting the published version of articles by NIH grant-holders and European or UK-based biomedical or life sciences grant holders to Prime Scholars Central immediately after publication.
Editorial Policies and process
Journal of Clinical Gastroenterology and Hepatology follows a progressive editorial policy that encourages researchers to submit the original research, reviews and editorial observations as articles, well supported by tables and graphic representation.
Article Processing Charges (APC) :
Journal of Clinical Gastroenterology and Hepatology is self-financed and does not receive funding from any institution/government. Hence, the Journal operates solely through processing charges we receive from the authors and some academic/corporate sponsors. The handling fee is required to meet its maintenance. Being an Open Access Journal, Journal of Clinical Gastroenterology and Hepatology does not collect subscription charges from readers that enjoy free online access to the articles. Authors are hence required to pay a fair handling fee for processing their articles. However, there are no submission charges. Authors are required to make payment only after their manuscript has been accepted for publication. If the author wants to withdraw his article after completion of the peer-review process, then the author has to pay minimum 30% of publication fee.
Average Article prorcessing time (APT) is 45 days
The basic article processing fee or manuscript handling cost is as per the price mentioned above on the other hand it may vary based on the extensive editing, colored effects, complex equations, extra elongation of no. of pages of the article, etc.
Fast Editorial Execution and Review Process (FEE-Review Process):
Journal of Clinical Gastroenterology and Hepatology is participating in the Fast Editorial Execution and Review Process (FEE-Review Process) with an additional prepayment of $99 apart from the regular article processing fee. Fast Editorial Execution and Review Process is a special service for the article that enables it to get a faster response in the pre-review stage from the handling editor as well as a review from the reviewer. An author can get a faster response of pre-review maximum in 3 days since submission, and a review process by the reviewer maximum in 5 days, followed by revision/publication in 2 days. If the article gets notified for revision by the handling editor, then it will take another 5 days for external review by the previous reviewer or alternative reviewer.
Acceptance of manuscripts is driven entirely by handling editorial team considerations and independent peer-review, ensuring the highest standards are maintained no matter the route to regular peer-reviewed publication or a fast editorial review process. The handling editor and the article contributor are responsible for adhering to scientific standards. The article FEE-Review process of $99 will not be refunded even if the article is rejected or withdrawn for publication.
The corresponding author or institution/organization is responsible for making the manuscript FEE-Review Process payment. The additional FEE-Review Process payment covers the fast review processing and quick editorial decisions, and regular article publication covers the preparation in various formats for online publication, securing full-text inclusion in a number of permanent archives like HTML, XML, and PDF, and feeding to different indexing agencies.
Submission of an Article
In order to reduce delays, authors should adhere to the level, length and format of the Prime Scholars Journals at every stage of processing right from manuscript submission to each revision stage. Submitted articles should have a 300 words summary/abstract, separate from the main text. The summary should provide a brief account of the work by clearly stating the purpose of the study and the methodology adopted, highlighting major findings briefly. The text may contain a few short subheadings of no more than 40 characters each.
Formats for Prime Scholars Contributions Prime Scholars accepts various formats of literary works such as research articles, reviews, abstracts, addendums, announcements, article-commentaries, book reviews, rapid communications, letters to the editor, annual meeting abstracts, conference proceedings, calendars, case-reports, corrections, discussions, meeting-reports, news, obituaries, orations, product reviews, hypotheses and analyses.
Article Preparation Guidelines
Authors are expected to attach an electronic covering letter completely mentioning the type of manuscript (e.g, Research article, Review articles, Brief Reports, Case study etc.) Unless invited on a special case, authors cannot classify a particular manuscript as Editorials or Letters to the editor or concise communications.
Confirm that each individual named as an author meets the uniform requirements of the Journal of Clinical Gastroenterology and Hepatology criteria for authorship.
Please make sure that the article submitted for review/publication is not under consideration elsewhere simultaneously.
Clearly mention financial support or benefits if any from commercial sources for the work reported in the manuscript, or any other financial interests that any of the authors may have, which could create a potential conflict of interest or the appearance of a conflict of interest with regard to the work.
A clear title of the article along with complete details of the author/s (professional/institutional affiliation, educational qualifications and contact information) must be provided in the tile page.
Corresponding author should include address, telephone number, fax number, and e-mail address in the first page of the manuscript and authors must address any conflict of interest with others once the article is published.
Number all sheets in succession, including references, tables, and figure legends.
Title page is page 1. On the first page, type the running head (short title for top of each page), title (which cannot include any acronyms), names of the authors and their academic degrees, grants or other financial supporters of the study, address for correspondence and reprint requests, and corresponding author's telephone and fax numbers and e-mail address.
Guidelines for Research Articles
Research articles are articles written based on the empirical/secondary data collected using a clearly defined research methodology, where conclusion/s is drawn from the analysis of the data collected.
The information must be based on original research that adds to the body of knowledge in clinical gastroenterology.
Article/s should provide a critical description or analysis of the data presented while adding new and rapidly evolving areas in the field.
Include an abstract of maximum 300 words with 7 to 10 important keywords. The abstract should be divided into Objective, Methods, Results, and Conclusion.
Research articles must adhere to a format constituting the introduction followed by a brief review of relevant literature, methodology applied (to collect the data), discussion and References, Tables, and Figure Legends.
Review Articles
Review articles are written based mostly on secondary data that is falling in line with the theme of the journal. They are brief, yet critical discussions on a specific aspect of the subject concerned. Reviews generally start with the statement of the problem with a brief abstract of 300 words and few key words. Introduction generally brings the issue forward to the readers followed by analytical discussion with the help of necessary tables, graphs, pictures and illustrations wherever necessary. It summarizes the topic with a conclusion. All the statements or observations in the review articles must be based on necessary citations, providing complete reference at the end of the article.
Commentaries are opinion articles written mostly by the veteran and experienced writers on a specific development, recent innovation or research findings that fall in line with the theme of the journal. They are very brief articles with the title and abstract that provides the gist of the topic to be discussed, with few key words. It straight away states the problems and provides a thorough analysis with the help of the illustrations, graphs and tables if necessary. It summarizes the topic with a brief conclusion, citing the references at the end.
Case Study
Case studies are accepted with a view to add additional information related to the investigative research that advances in the field of Journal of Clinical Gastroenterology and Hepatology. It should add value to the main content/article submitted, by providing key insights about the core area. Cases reports must be brief and follow a clear format such as Cases and Methods Section (That describe the nature of the clinical issue and the methodology adopt to address it), discussion section that analyzes the case and a Conclusion section that sums up the entire case.
Editorials are concise commentaries on a currently published article/issue on Journal of Clinical Gastroenterology and Hepatology. Editorial office may approach for any such works and authors must submit it within three weeks from the date of receiving invitation.
Letters to the Editor/Concise Communications
Letters to the editor should be limited to commentaries on previous articles published with specific reference to issues and causes related to it. It should be concise, comprehensive and brief reports of cases or research findings. It does not follow a format such as abstract, subheads, or acknowledgments. It is more a response or the opinion of the reader on a particular article published and should reach the editor within 6 months of article publication.
Acknowledgement: This section includes acknowledgment of people, grant details, funds, etc.
Note: If an author fails to submit his/her work as per the above instructions, they are requested to maintain clear titles namely headings, subheading.
References: Only published or accepted manuscripts should be included in the reference list. Meetings abstracts, conference talks, or papers that have been submitted but not yet accepted should not be cited. All personal communications should be supported by a letter from the relevant authors.
Prime Scholars uses the numbered citation (citation-sequence) method. References are listed and numbered in the order that they appear in the text. In the text, citations should be indicated by the reference number in brackets. Multiple citations within a single set of brackets should be separated by commas. When there are three or more sequential citations, they should be given as a range. Example: "... now enable biologists to simultaneously monitor the expression of thousands of genes in a single experiment [1,5-7,28]". Make sure the parts of the manuscript are in the correct order for the relevant journal before ordering the citations. Figure captions and tables should be at the end of the manuscript.
Authors are requested to provide at least one online link for each reference as following (preferably PubMed).
Because all references will be linked electronically as much as possible to the papers they cite, proper formatting of the references is crucial. Please use the following style for the reference list:
Published Papers
1. Laemmli UK (1970) Cleavage of structural proteins during the assembly of the head of bacteriophage T4. Nature 227: 680-685.
2. Brusic V, Rudy G, Honeyman G, Hammer J, Harrison L (1998) Prediction of MHC class II- binding peptides using an evolutionary algorithm and artificial neural network. Bioinformatics 14: 121-130.
3. Doroshenko V, Airich L, Vitushkina M, Kolokolova A, Livshits V, et al. (2007) YddG from Escherichia coli promotes export of aromatic amino acids. FEMS Microbiol Lett 275: 312-318.
Note: Please list the first five authors and then add "et al." if there are additional authors.
Electronic Journal Articles Entrez Programming Utilities
1. Baggot JD (1999) Principles of drug disposition in domestic animals: The basis of Veterinary Clinical Pharmacology. (1stedn), W.B. Saunders Company, Philadelphia, London, Toranto.
2. Zhang Z (2006) Bioinformatics tools for differential analysis of proteomic expression profiling data from clinical samples. Taylor & Francis CRC Press.
1. Hofmann T (1999) The Cluster-Abstraction Model: unsupervised learning of topic hierarchies from text data. Proceedings of the International Joint Conference on Artificial Intelligence.
These should be used at a minimum and designed as simple as possible. We strongly encourage authors to submit tables as .doc format. Tables are to be typed double-spaced throughout, including headings and footnotes. Each table should be on a separate page, numbered consecutively in Arabic numerals and supplied with a heading and a legend. Tables should be self-explanatory without reference to the text. Preferably, the details of the methods used in the experiments should be described in the legend instead of the text. The same data should not be presented in both table and graph form or repeated in the text. Cells can be copied from an Excel spreadsheet and pasted into a word document, but Excel files should not be embedded as objects.
Note: If the submission is in PDF format, the author is requested to retain the same in .doc format in order to aid in completion of process successfully.
The preferred file formats for photographic images are .doc, TIFF and JPEG. If you have created images with separate components on different layers, please send us the Photoshop files.
All images must be at or above intended display size, with the following image resolutions: Line Art 800 dpi, Combination (Line Art + Halftone) 600 dpi, Halftone 300 dpi. See the Image quality specifications chart for details. Image files also must be cropped as close to the actual image as possible.
Use Arabic numerals to designate figures and upper case letters for their parts (Figure 1). Begin each legend with a title and include sufficient description so that the figure is understandable without reading the text of the manuscript. Information given in legends should not be repeated in the text.
Figure legends: These should be typed in numerical order on a separate sheet.
Tables and Equations as Graphics
If equations cannot be encoded in MathML, submit them in TIFF or EPS format as discrete files (i.e., a file containing only the data for one equation). Only when tables cannot be encoded as XML/SGML can they be submitted as graphics. If this method is used, it is critical that the font size in all equations and tables is consistent and legible throughout all submissions.
Supplementary Information
All Supplementary Information (figures, tables and Summary diagram, etc.) is supplied as a single PDF file, where possible. File size within the permitted limits for Supplementary Information. Images should be a maximum size of 640 x 480 pixels (9 x 6.8 inches at 72 pixels per inch).
Proofs and Reprints
Electronic proofs will be sent as an e-mail attachment to the corresponding author as a PDF file. Page proofs are considered to be the final version of the manuscript and no changes will be made in the manuscript at the proof stage. Authors can freely download the PDF file. Hard copies of the documents are available on request. Please click on the link for the charges.
All works published by Prime Scholars are under the terms of the Creative Commons Attribution License. This permits anyone to copy, distribute, transmit and adapt the work provided the original work and source is appropriately cited.


text:
Simple JWT Login is a FREE WordPress plugin that allows you to use a JWT on WordPress REST endpoints.
This plugin allows you to log in, register, authenticate, delete and change user password to a WordPress website using a JWT.
It's main purpose is to allow you to connect a mobile App or other websites with WordPress.
Plugin Documentation Site: https://simplejwtlogin.com
Some awesome features
- Auto-login using JWT and AUTH_KEY
- Register new users via API
- Delete WordPress users based on a JWT
- Reset user password
- Allow auto-login / register / delete users only from specific IP addresses
- Allow register users only from a specific domain name
- API Route for generating new JWT
- Get JWT from URL, SESSION, COOKIE or HEADER
- Pass request parameters to login URL
- CORS settings for plugin Routes
- Hooks
- JWT Authentication
- Allow access private endpoints with JWT
- Protect endpoints with JWT
Check the plugin website for more features.
Login User
This plugin is customizable and offers you multiple methods to log in to you website, based on multiple scenarios.
In order to login, users have to send JWT. The plugin, validates the JWT, and if everything is OK, it can extract the WordPress email address or user ID.
Users can specify the exact key of the JWT payload where this information can be found.
Here are the methods how you can send the JWT in order to auto-login:
- Header
- Cookie
- Session
If the JWT is present in multiple places ( like URL and Header), the JWT will be overwritten.
This plugin supports multiple JWT Decryption algorithms, like: HS256, HS512, HS384, RS256,RS384 and RS512.
After the user is logged in you can automatically redirect the user to a page like:
- Dashboard
- Homepage
- or any other custom Page ( this is mainly used for redirecting users to a landing page)
You can attach to your redirect a URL parameter redirectUrl
that will be used for redirect instead of the defined ones.
In order to use this, you have to enable it by checking the option Allow redirect to a specific URL
Also, redirect after login offers some variables that you can use in the customURL and redirectUrl.
Here are the variables which you can use in your URL:
– {{site_url}} : Site URL
– {{user_id}} : Logged in user ID
– {{user_email}} : Logged in user email
– {{user_login}} : Logged in username
– {{user_first_name}} : User first name
– {{user_last_name}} : User last name
– {{user_nicename}} : User nice name
You can generate dynamic URLs with these variables, and, before the redirect, the specific value will be replaced.
Here is an example:
Also, this plugin allows you to limit the auto-login based on the client IP address.
If you are concerned about security, you can limit the auto-login only from some IP addresses.
Read more on our website.
Register Users
This plugin also allows you to create WordPress users.
This option is disabled by default, but you can enable it at any time.
In order to create users, you just have to make a POST request to the route URL, and send an email and a password as parameter and the new user will be created.
You can select the type for the new users: editor, author, contributor, subscriber, etc.
Also, you can limit the user creating only for specific IP addresses, or specific email domains.
Another cool option is "Generate a random password when a new user is created".
If this option is selected, the password is no more required when a new user is created a random password will be generated.
Another option that you have for register user is "Initialize force login after register".
When the user registration is completed, the user will continue on the flow configured on login config.
If auto-login is disabled, this feature will not work and the register user will go on a normal flow and return a json response.
If you want to add custom user_meta on user creation, just add the parameter user_meta
with a json. This will create user_meta for the new user.
These properties can be passed in the request when the new user is created.
- email : (required) (string) The user email address.
- password : (required) (string) The plain-text user password.
- user_login : (string) The user's login username.
- user_nicename : (string) The URL-friendly username.
- user_url : (string) The user URL.
- display_name : (string) The user's display name. Default is the user's username.
- nickname : (string) The user's nickname. Default is the user's username.
- first_name : (string) The user's first name. For new users, will be used to build the first part of the user's display name if $display_name is not specified.
- last_name : (string) The user's last name. For new users, will be used to build the second part of the user's display name if $display_name is not specified.
- description : (string) The user's biographical description.
- rich_editing : (string) Whether to enable the rich-editor for the user. Accepts 'true' or 'false' as a string literal, not boolean. Default 'true'.
- syntax_highlighting : (string) Whether to enable the rich code editor for the user. Accepts 'true' or 'false' as a string literal, not boolean. Default 'true'.
- comment_shortcuts : (string) Whether to enable comment moderation keyboard shortcuts for the user. Accepts 'true' or 'false' as a string literal, not boolean. Default 'false'.
- admin_color : (string) Admin color scheme for the user. Default 'fresh'.
- use_ssl : (bool) Whether the user should always access the admin over https. Default false.
- user_registered : (string) Date the user registered. Format is
Y-m-d H:m:s
. - user_activation_key : (string) Password reset key. Default empty.
- spam : (bool) Multisite only. Whether the user is marked as spam. Default false.
- show_admin_bar_front : (string) Whether to display the Admin Bar for the user on the site's front end. Accepts 'true' or 'false' as a string literal, not boolean. Default 'true'.
- locale : (string) User's locale. Default empty.
Read More on our website.
Delete User
Delete user it is disabled by default.
In order to delete a user, you have to configure where to search the details in the JWT.
You can delete users by WordPress User ID or by Email address.
Also, you have to choose the JWT parameter key where email or user ID it is stored in the JWT.
Also, you can limit the deletion of users to specific IP addresses for security reasons.
Reset Password
Reset password and change password endpoints are disabled by default.
This plugin allows you to send the reset password endpoint, just by calling an endpoint. An email with the code will be sent to a specific email address.
Also, you are able to customize this email, or even not send at email at all.
The change password endpoint, changes the user password, based on the reset password code.
Read More on our website.
This plugin allows users to generate JWT tokens based from WordPress user email and password.
In order to Get a new JWT, just make a POST request to /auth route with your WordPress email and password ( or password_hash) and the response will look something like this:
"success": true,
"data": {
"jwt": "NEW_GENERATED_JWT_HERE"
If you want to add extra parameters in the JWT payload, just send the parameter payload
on /auth
endpoint, and add a json with the values you want to be added in the payload.
At some point, the JWT will expire.
So, if you want to renew it without having to ask again for user and password, you will have to make a POST request to the auth/refresh route.
This will generate a response with a new JWT, similar to the one that /auth
If you want to get some details about a JWT, and validate that JWT, you can call /auth/validate
. If you have a valid JWT, details about the available WordPress user will be returned, and some JWT details.
If you want to revoke a JWT, access /auth/revoke
and send the jwt
as a parameter.
The plugin auto-generates the example URL you might need to test these scenarios.
Read More on our website.
Auth codes
Auth codes are optional, but you can enable them for Auto-login, Register User and Delete user.
This feature allows you to add a layer of protection to your API routes.
The Auth codes contains 3 parts:
1. Authentication Key: This is the actual code that you have to add in the request.
2. WordPress new User Role: can be used when you want to create multiple user types with the create user endpoint. If you leave it blank, the value configured in the 'Register Settings' will be used.
3. Expiration Date: This allows you to set an expiration date for you auth codes. The format is `Y-M-D H:m:s'. Example : 2020-12-24 23:00:00. If you leave it blank, it will never expire.
Expiration date format: year-month-day hours:minutes:seconds
Read More on our website.
This plugin allows advanced users to link some hooks with the plugin and perform some custom scripts.
Some available hooks:
- type: action
- parameters: Wp_User $user
- description: This hook it is called after the user has been logged in.
- type: action
- parameters: string $url, array $request
- description: This hook it is called before the user it will be redirected to the page he specified in the login section.
- type: action
- parameters: Wp_User $user, string $plain_text_password
- description: This hook it is called after a new user has been created.
- type: action
- parameters: Wp_User $user
- description: This hook it is called right after the user has been deleted.
- type: filter
- parameters: array $payload, array $request
- return: array $payload
- description: This hook is called on /auth endpoint. Here you can modify payload parameters.
- type: filter
- parameters: array $payload, array $request
- return: array $payload
- description: This hook is called on /autologin endpoint when the option
No Redirect
is selected. You can customize the message and add parameters.
- type: filter
- parameters: string $template, array $request
- return: string $template
- description: This is executed when POST /user/reset_password is called. It will replace the email template that has been added in Reset Password settings
View full list of hooks on https://simplejwtlogin.com/docs/hooks.
The CORS standard it is needed because it allows servers to specify who can access its assets and how the assets can be accessed.
Cross-origin requests are made using the standard HTTP request methods like GET, POST, PUT, DELETE, etc.
Read More on our website.
Protect endpoints
This option is disabled by default. In order to enable it, you need to set "Protect endpoints enabled" to true.
This feature comes with 2 actions:
– Apply on All REST Endpoints
– Apply only on specific REST endpoints
When you choose Apply on All REST Endpoints
, you will be able to whitelist some endpoints from your WordPress REST by adding them to the whitelist section.
For example, If you only want to allow users to access the wp/v2/posts
endpoint without having to provide the JWT, you save in the whitelist section wp/v2/posts
When you choose Apply only on specific endpoints
, you will have to add all the endpoints you want to be protected by JWT.
When an endpoint is protected, and you don't provide a JWT, you will get the following response:
"message":"Your are not authorized to access this endpoint.",
Read More on our website.
In order to easily integrate your app/site with simple-jwt-login, we have developed a composer package.
composer require nicumicle/simple-jwt-login-client-php
You can check the package page for more details and code examples.
Also, there is a Javascript SDK that you can install with npm
or yarn
npm install "simple-jwt-login"
yarn add "simple-jwt-login"
Here's how you install and activate the JWT-login plugin:
- Download the Simple-JWT-login plugin.
- Upload the .zip file in your WordPress plugin directory.
- Activate the plugin from the "Plugins" menu in WordPress.
- Go to the 'Plugins' menu in WordPress and click 'Add New'
- Search for 'Simple JWT Login' and select 'Install Now'
- Activate the plugin when prompted
Next steps:
Go to "General section"
- set "JWT Decryption key". With this key, we will validate the JWT.
- choose "JWT Decryption algorithm".
Go to "Login Settings"
- please set "Allow Auto-login" to "yes".
- set parameter "Action" ( Login by WordPress User ID / User Email).
- set the "JWT parameter key" with the key from your JWT where user email or user ID can be found in the decoded JWT.
After that, you can copy the sample URL from the top of the page ( Login Config section), replace the JWT string with your valid JWT, and you will be redirected to your WordPress and automatically logged in.
Also, if you don't want to add the JWT in the URL, you can add it in the header of the request with the key 'Authorization'.
Please note that the JWT that is set in the header overwrites the one from the URL.
Authorization: Bearer YOURJWTTOKEN
Authorization: YOURJWTTOKEN
Is this plugin secure?
Yes, this plugin is secure. It allows to auto-login to your WordPress website using a JWT, that is decrypted and validated against your JWT Decryption key.
Make sure you set the specific user type when new users are created. -
Can I disable the API for registering new users?
Yes, both Auto-login and register can be enabled or disabled.
Can I limit the email addresses that can register in WordPress with this plugin?
Yes, You can use the domain limitation and add multiple domains separated by comma.
Users that don't provide an email from that domain, will get an error. -
Can I use a JWT generated by another plugin to login?
Yes. The only thing you have to make sure, in order to work, is that you use the same "Decryption Key" and encryption algorithm.
Is the Auth Code required?
No, it is not required. You can disable it from 'Login config', 'Register Config' and 'Delete User Config'. Just set the parameter 'Login|Register requires Auth Code' to 'No'.
I don't want other users to be able to delete users. What should I do?
The 'delete users option' is disabled by default. To make sure nobody will delete a user, please make sure the option "Allow Delete" is set to "No".
Can I automatically log in to a WordPress website from my mobile App using this plugin?
Yes. The main feature of this plugin is to automatically log in users into a WordPress website using a JWT. So, you can log in into WordPress from mobile apps, react native, angular, Vue js, meteor, backbone, javascript, etc.
How to use hooks?
Here is a code example, how to send an email after a new user has been created.
add_action( 'simple_jwt_login_register_hook', function($user, $password){ $to = $user->user_email; $subject = 'Welcome'; $message = ' Welcome to My Site. Your new user credentials are: email: ' . $to .' password: '. $password; wp_mail($to, $subject, $message); }, 10, 2);
Here is an example on how you can overwrite the "No Redirect" response after autologin:
add_filter('simple_jwt_login_no_redirect_message',function($response, $request){ $response['userId'] = get_current_user_id(); $response['userDetails'] = wp_get_current_user(); return $response; },10, 2);
Here is an example, on how you can change the body for reset password email template:
add_filter('simple_jwt_login_reset_password_custom_email_template', function ($template, $request) { $template .= 'The template has been modified by hook'; return $template; }, 10, 2 );
I cannot get the JWT from session. Where should I store the JWT?
The plugin searches for the JWT in:
– URL ( &jwt=YOUR JWT HERE)
– SESSION ($_SESSION['simple-jwt-login-token']
– COOKIE ($_COOKIE['simple-jwt-login-token']
– Header (Authorization: Bearer YOUR_JWT_HERE
)Also, the key name for each parameter, can be changed in the general section.
I would like to create users with different roles. It is possible?
Yes. In order to be able to create different users with different roles, first you have to create some AUTH Codes, and set the desired roles for each Auth Code.
After that, for the create user route, simply add the AUTH code in the request, and the role from 'Register User' will be overwritten with the one from Auth Code.
Contributors & Developers
"Simple JWT Login – Allows you to use JWT on REST endpoints." is open source software. The following people have contributed to this plugin.
ContributorsTranslate "Simple JWT Login – Allows you to use JWT on REST endpoints." into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
A complete Changelog is available on the GitHub repository.
3.5.5 ( 04 May 2024)
- Update README
- Refactor Protect Endpoints
3.5.4 ( 03 May 2024)
- Add OAuth support for Google #97
- Fix status code for expired tokens #102
- Update WordPress 6.5 Compatibility
3.5.3 (16 November 2023)
- Fix licence in composer.json
- Update WordPress 6.4 compatibility
3.5.2 (02 November 2023)
- Fix change user password with revoked JWT
- Change routes priority from floats to int and fix deprecation message "Implicit conversion from float to int loses precision"
- Add
to JWT payload and allow to configure it - Fix user meta on register user #86
- Fix calling protected endpoints with revoked token #75
3.5.1 (1 October 2023)
- Update WordPress 6.3 compatibility
3.5.0 (04 Jan 2023)
- Fix unable to create post issue when protect endpoints is enabled for all endpoints
- Search user by email on reset password
- Switch
due to deprecation - Remove method
from WordPressData. - Drop support for PHP 5.3 and PHP 5.4
3.4.10 (14 Dec 2022)
- Fix issue with rest routes
3.4.9 (04 Dec 2022)
- Add Strength indicator for JWT decryption key
- Allow setting custom length for random password. The default is 10 characters.
- Allow sending base_64 encoded
on the/auth
endpoint - Fix issue with
that has been building incorrect URLs - Add query parameters filter on autologin redirect
- Add the
hook before all simple-jwt-login routes are initialized
3.4.8 (04 Nov 2022)
- Add filter to allow the change for authentication payload
- Change how we log in the user on while using the "protect endpoint" feature
- Refactor Route Service getUserFromJWT method
- Sanitize data from request
- Fix password issue when it contains special characters
endpoint supports bothGET
3.4.7 (02 Oct 2022)
- Remove unused code from the JWT library
- Move JWT Library to a folder
- Stay on current page after saving settings
- Some small text sanitizations
- Change how views are loaded in order to prevent "local file inclusion risk"
3.4.6 (27 Apr 2022)
- Fix user_meta when passed as json in request body
3.4.5 (11 Apr 2022)
- Add Redirect on Fail autologin
- Add shortcodes for displaying autologin errors
3.4.4 (03 Apr 2022)
- Add hooks for all success responses
3.4.3 ( 30 Jan 2022)
- Tested with WordPress 5.9
- Do not add empty JWT to Authorization header
3.4.2 (14 Dec 2021)
- Display user roles on auth/validate and on register user
3.4.1 (05 Dec 2021)
- Fix protect endpoint conflict with wp-admin actions
- Check if user role exists
- Improve logic for protect endpoints
- Allow Authentication with DB hashed password
- Change user password with JWT
3.4.0 (17 Oct 2021)
- Implement protected endpoints
3.3.1 (13 Oct 2021)
- Sanitize load views
3.3.0 (13 Oct 2021)
- Sanitize all displayed texts
- Add missing translation texts
- Update bootstrap libraries
- Update all translations
- Improve random password algorithm for better security
3.2.1 (09 Oct 2021)
- Fix CSRF for admin settings
3.2.0 (26 Sept 2021)
- Add user to simple_jwt_login_register_hook and simple_jwt_login_login_hook hooks
- Add option to allow adding a JWT in the register user endpoint
3.1.0 (31 July 2021)
- Add reset password and change password endpoints
3.0.0 (11 July 2021)
- Plugin code refactor
- Rewrite file auto-loaded
- Improve parse request parameters
- Add support for JSON body requests
- Fix user_meta URL encoded
- Add support for Force Login plugin
- Add Auth codes to dashboard
- Add IP limitation for Authentication
- Add support for Delete user by username
- Add support for
in IP restrictions - Fix user role
when empty role in Auth Codes - Add Auth code on Authentication endpoint
2.6.2 (29 April 2021)
- Update documentation link with plugin website URL
2.6.1 (10 April 2021)
- Add documentation link
2.6.0 (08 December 2020)
- Add
No Redirect
option for autologin and respond with a json on this endpoint - Add Hook for
No redirect
in order to customize the autologin response
2.5.2 (27 November 2020)
- Add permission callback to api routes
- Use session start only when session token has been activated
2.5.1 (16 November 2020)
- Fix Authorization header
2.5.0 (15 November 2020)
- Add key change for URL, Session, Cookie and Header parameters
2.4.1 (21 October 2020)
- Add more variables for
2.4.0 (20 October 2020)
- Add
parameter - Add variables for URLs
- Fix session start warning
2.3.1 (01 September 2020)
- Highlight Settings errors and display section
- fix PHP warning for session_start()
2.3.0 (25 August 2020)
- Add support for revoke token: /auth/revoke
- Allow adding extra parameters in payload on /auth endpoint
- Add filter on /auth in order to allow payload modification
- Add support for user_meta on create user
- Allow users to set decryption key in WordPress PHP code
- Display number of active hooks on dashboard
- Improve error system from plugin settings
2.2.7 (05 August 2020)
- Fix warning for "register_rest_route was called incorrectly"
- Fix getting JWT from header: ignore white spaces
- Allow users to store base64 encoded decryption keys and use them as decoded when needed
2.2.6 (20 July 2020)
- Fix issue with saving JWT algorithm
- Allow usage of certificates in order to encode/decode JWT
- Add option to add username in JWT payload
- Users can authenticate with WordPress username for /auth endpoint
2.2.5 (18 July 2020)
- Allow login by username ( user_login )
- beta: Allow users to access private endpoints via API with JWT
2.2.4 (13 July 2020)
- Fix tabs visibility issue on some WordPress versions
2.2.3 (10 July 2020)
- Add a toggle for all hooks
- Fix CORS issue
2.2.2 (09 July 2020)
- Attach plugin version to js and css
- Change the path for js and css files
- Change the load order for the JS files
2.2.1 (08 July 2020)
- Fix issue with bootstrap
2.2.0 (29 June 2020)
- Add /auth/validate endpoint to validate tokens and get some details about the user that it is present in the JWT
2.1.1 (26 June 2020)
- Fix error for auto-login after registering user
2.1.0 (20 June 2020)
- Add support for CORS
- Include request parameters used for login link in the REDIRECT URL
- Add initial request data to the hook simple_jwt_login_redirect_hook call
- Add expiration date and user role to AUTH Codes
2.0.0 (14 June 2020)
- New UI for plugin configuration
- Allow users to enable/disable specific hooks
- Add route for JWT generator
- Add route that refreshes an expired JWT
- Allow custom user_login for new users.
- Add WP_user in create user response
1.6.4 (06 June 2020)
- Fix route PHP warning
1.6.3 (26 May 2020)
- Add a hook that is called before the user it is redirected to the page he specified in the login section.
1.6.2 (23 May 2020)
- Add plain text password to register user hook
- Update documentation
- Add option for a random password on new created users
- Add option 'Initialize force login after register' – that allows users to continue on the auto-login flow after user registration
- Add more options for create new user
- Add more options when a new user is created
1.6.1 (20 May 2020)
- Improve mechanism for detecting if plugin needs update/create for DB option
- Add new option to get JWT from '$_COOKIE' and '$_SESSION'
- Update readme
1.6.0 (17 May 2020)
- Fix save settings with minimum number of parameters ( No auth codes if all options are disabled)
- Add hooks for login, register and create User.
- Ignore case for JWT parameter
- JWT can be added in header
- Update Readme
1.5.0 (05 Feb 2020)
- Allow delete users based on a JWT token
- Refactor routes section
- Allow users to set custom namespace for API route
- Change create user route name and offer support for backward compatibility
1.4.0 (29 Jan 2020)
- Add codes to errors
- Code refactor
- Allow save in settings with no AUTH_KEYS when they are not used
- Improve sample URL generators
- Small UI Changes
- Fix validations
- Keep settings values even if there is an error
- Update readme
1.3.1 (20 Dec 2019)
- Plugin can be configured only by administrators
1.3.0 (28 Nov 2019)
- Add support for translations
- Code refactor
1.2.4 (26 Nov 2019)
- Improve UI for Auth codes
- Update Readme
1.2.3 (16 Nov 2019)
- Allow users to change Auth Key parameter
1.2.2 (16 Nov 2019)
- Add support for getting key from jwt and array
1.2.1 (23 June 2019)
- Add functionality for copy login and register example URL
1.2.0 (21 June 2019)
- Allow login by email or WordPress user ID
- UI / UX small improvements
1.1.0 (15 June 2019)
- Add support for IP address limitation for login / register
- Allow users to register only with emails from specific domains
- Possibility to make requests without Auth Codes
1.0.0 (14 June 2019)
- Initial release

subset: commoncrawl


text:
Preparing For Your Mediation
The following article was written for workplace disputes but has direct application to almost any conflict.
Preparing for Your Mediation
by Tom Sebok
October 2002
"If you do what you've always done, you'll get what you always got." (Mark Twain)
It is likely that you asked for or agreed to mediation because the strategies you have already tried have not helped you resolve your dispute. Also, your most likely alternatives to mediation may be undesirable. For example, you could decide to just live with the conflict, quit your job, try to transfer to another position, make an informal complaint against the person with whom you are in conflict, file a grievance (if you are a classified staff member), initiate disciplinary action (if you have the authority to do so), or try to work things out in a one-on-one conversation with the person with whom you are in conflict. In comparison with these options, mediation may look like your best alternative.
To effectively manage or resolve problems, the discussion that takes place in mediation needs to be different from previous discussions. But how can it be different if the same people are talking about the same issues? The mediator(s) can help by establishing ground rules, slowing down the conversation, clarifying, and asking questions to promote understanding. But, having a mediator is no guarantee that you will have a successful outcome. Ultimately the success of mediation depends on you and the person with whom you'll be mediating. The purpose of this article is to help you think – before your mediation – about what you can do as a participant to give your mediation the best chance to succeed.
The Goal of Mediation…
Mediation helps people resolve or better manage disputes by reaching agreements about what both people will do differently in the future. For you to reach an agreement with the other person requires that you obtain her/his cooperation to find mutually agreeable solutions. As you consider what you will say in your mediation, keep this goal in mind.
What Mediation is Not…
Mediation is not debating. It does not require you to prove that you are right and the other person is wrong or convince her/him to give up what s/he thinks is important. Unlike debating, mediation is not intended to have a "win-lose" outcome. In fact, it is often the failure of "debating" that leads people to seek the help of mediators!
Mediation is not capable of changing anyone's personality or values.
Unlike the justice system, the mediation process is not intended to find fault, assign blame, or punish anyone.
Finally, mediation is not something people are likely to do successfully if they are mandated to participate in it against their will. It needs to be voluntary.
What Metiators Do…
Mediators will play a neutral role as they attempt to help you resolve or better manage your dispute. They do not "take sides with either party." Their job is to assist you in understanding one another and in reaching agreements. To do this, they establish ground rules and ask questions (usually to one person at a time). They will help you identify the issues and interests in need of resolution. Once issues and interests are identified, they will encourage you to brainstorm solutions. After the mediation, they will write drafts of agreements and, after gaining your approval, give them to you to sign, date, and exchange.
What Mediators Don't Do…
Mediator(s) do not:
- make decisions for you and/or the other person about how your dispute will be resolved.
- talk with others without your permission about how the mediation went. This also includes your boss and/or other stakeholders. Even people who refer you to mediation do not hear from the mediator about how the mediation went, who said what in the mediation, etc.
- determine who is "right" or "wrong." There is no value in trying to persuade the mediator of the "merits of your case."
A Different Kind of Conversation…
In mediation, the conversation occurs, at least initially, between the mediator and one disputant at a time. While the mediator talks with one person, the other is expected to listen. This may feel awkward initially but it interrupts the communication pattern in which you and the other person have been engaged. It also allows the mediator to ask questions that will help her/him understand the perspective of each disputant. And it allows the person not speaking to hear the perspective of the other person. To make sure understanding is occurring between you, the mediator may ask each of you to repeat the essence of what you heard.
Seeking Mutual Benefit…
Imagine how you would feel if the only solutions mediation produced were those acceptable to the other person. You would not agree to them. Similarly, if the only solutions produced were those acceptable to you, the other person is unlikely to agree. For many people in a dispute (especially after it has become "heated"), it does not feel "natural" to focus on finding solutions acceptable to the other person involved. However, the reason you are involved in a dispute with the other person is that s/he disagrees with you or dislikes something you have said or done. Finding ways to address those concerns as well as your concerns will help resolve the problem more quickly.
Tactful Honesty…
While honesty is very important, tact is also important in mediation. Some people say, "I was just being honest" or "I was just being direct" to justify saying insulting or tactless things to the person with whom they mediate. This person tells her/himself, "I was honest. If the other person couldn't take it, that's her/his problem." Just because you think something, you don't have to say it. You do not have to choose between "being honest" or "being tactful." Obviously, if you are going to seriously address an issue, you need to be honest about what the issue is. But there are numerous ways to say the same thing. A tactful approach is more likely to help you get the other person's cooperation than a tactless one.
Understanding the Other Person's Point of View…
You probably know how you feel about the dispute and what problems you think need to be resolved. You could probably describe how the other person has acted and how her/his behavior has affected you. And, you could probably name the most important issues to you in the dispute. All of that is good because you will need to discuss these things in mediation. But, you may know a lot less about how the other person has been affected by the dispute and how s/he sees it. In fact, many people make the mistake of assuming that the other person wants her/him to be miserable, is not bothered by the conflict, or even enjoys it. This is almost never true! Most people engage in conflict because they have genuinely different interests, expectations, information, or values. How would you answer the following questions?
- How does the other person feel about the dispute?
- How would s/he define the problem(s) that need to be resolved?
- How would s/he describe my behavior in this dispute?
- How has my behavior in the dispute affected her/him?
- What are most the most important issues to her/him?
If you cannot confidently answer the above questions, you have just discovered a potentially important clue for unlocking the dispute! You may believe that understanding and solving the other person's problem is "the other person's problem," but here's the problem with that belief: The concerns of the other person are why s/he is in conflict with you! If you don't really understand these concerns – from her/his point of view, you cannot do anything to address them. And if you can't address them, the conflict will remain unresolved. Try to understand the problems expressed by the other party exactly as s/he sees them. This does not mean you have to agree with what the other person says or abandon your own concerns. It only means you must understand her/his concerns. To accomplish this during the mediation, this means you will need to listen carefully to what the other person says. If/when the mediator asks you to do so, repeat what you heard the other person say as accurately as you can without dismissing, discounting, or interpreting it. If you see things differently, you will have an opportunity to explain that. But disagreeing before the other person knows you understand exactly what s/he has said tends to discourage her cooperation to work with you to resolve the problem. The mediator(s) will guide the discussion so you both will have the opportunity to hear the concerns of the other person. While it may be difficult to listen to a point of view with which you disagree, what is said may reveal important and helpful information for you.
An Effective Strategy…
Use the mediation to find out what the other person would like you to do differently in the future. Why? What you agree to do is all that is within your control. S/he is more likely to do things you would like her/him to do IF you agree to do things differently yourself. There is, of course, no guarantee s/he will do this, but the odds are greater that if you agree to make changes, s/he will too.
Common Mistakes…
Making Insulting Comments:
Even if you believe the other person acted like a "jerk" or "moron," insulting her/him by calling her names is not likely to be an effective strategy to get her/his cooperation to make agreements with you. This applies to almost any other negative assumption or attribution you may make about the other person, (e.g., "He's crazy as a loon") as well. If you say things to or about her/him in mediation that s/he finds insulting, you probably won't get what you want.
Perhaps the most destructive comments in mediation are those in which one person makes evaluative pronouncements about the other person's character (e.g., "He is lazy, dishonest, and worthless."). Even if the speaker believes this with all her/his heart, it is not likely to help her/him gain the other person's cooperation in finding mutually agreeable solutions.
Negative Labels for the Other's Behavior:
Some people don't recognize that their choice of words may be offensive to the other person. For example:
"He has been harassing me for weeks!"
While the speaker may very well feel "harassed," the person about whom the remark is made is unlikely to perceive her/his own behavior as "harassing." This term is likely to evoke defensiveness. If you say something like this, a defensive reaction is NOT going to help you to get her cooperation. She may feel the need to assert that the behavior in question was not, in fact, "harassing." And debating whether behavior is or isn't "harassment" is unlikely gain cooperation of either party. A more productive discussion would probably evolve from mediator questions like, "Given the other person's concerns, how would you have preferred for her to have responded?" or "If she has those concerns in the future, how would you prefer for her to respond?" or "How were you affected when she said X to you?"
Impulsive Comments:
Some of the things you may be most tempted to say or do will not be helpful. These are things that might feel "good" in the moment, but, in the long run, will interfere with your reaching your goal. If you feel mad or hurt as a result of something the other person says, you may be tempted to say things or act in ways that will harden the conflict. Resist this temptation to the best of your ability. This does not mean "keep it to yourself." It means "discuss whatever concerns you in ways the other person will be able to hear." If nothing else, if/when such a critical moment occurs, ask for a "time out" or don't say anything until you are able to avoid the impulse to lash out. The silence may be uncomfortable, but it is far less damaging to the goal of getting the other person's cooperation to work with you to resolve the dispute than giving in to the urge to "respond in kind."
"Mind-reading" is another common mistake made by disputants. This occurs when people observe the actions of another person and attribute motives to her/him. People can also get pretty creative in making multiple negative attributions. Notice in the examples that follow how each one adds yet another assumption or attribution:
- "You are trying to fire me."
- "Why don't you just come out and admit that you're trying to fire me?"
- "Why don't you just admit that you want to fire me because of I'm gay?"
In the third example, the speaker assumes that the person s/he is talking to:
- is trying to hide something,
- has the intention to terminate the employment of the speaker, and
- wants to terminate her/his employment because s/he does not like gay people.
"Always" and Never" "Statements:
"Always" or "never" statements often lead to an unproductive discussion about examples that contradict the statement. For example, if you say, "You always miss those meetings," the other person may feel compelled to point out all the times s/he attended the meetings. Similarly, if you say, "You NEVER get to our meetings on time," you may find yourself in a conversation about the time(s) when the person DID get to the meeting on time. Simply avoiding these statements allows you to spend your mediation time more productively.
If you make any of the above mistakes, try to stop, take a breath, and, if necessary, apologize. After you've done something that insults the other person, that's really all you can do. Pretending as if nothing happened when you know that you have acted in a disrespectful or hurtful way toward the other person will not promote respect, trust, or cooperation. Owning up to these things gives you a much better chance of achieving getting back on track.
What Works Better?
Use "I Statements and Ask Open-Ended Questions:"
Making "I" statements and asking open-ended questions work much better than making "you" statements. For example:
"I didn't like it that you asked me four times about my progress in completing the report last Tuesday. I don't understand why you did that."
"I don't remember these events in the way you described them. What I remember is . . ."
"Why do you think X?"
"I'm confused because earlier you said X and now, it sounds like you're saying Y. Can you clarify this for me?"
Making the last statement above, rather than, "No, that's untrue," or (worse) "You're a liar!" (even if you know it is untrue), allows the other party to "save face" because the speaker does not force the issue as a "right" or "wrong" issue and, instead, makes an honest "I" statement. Also, sometimes people have different information and are not intentionally lying. If this is the case, questions or "I statements" will allow you to avoid inflaming the conflict and deal with the facts. While the other party is free to disagree, s/he is less likely to feel insulted than s/he would if s/he were called "a liar" and s/he is less likely to disagree about the facts than s/he would be if s/he were told, "No, you're wrong!" (even if s/he is wrong).
Neutral Language:
Use language that describes what the other person has done in a neutral way – without evaluating her/him. For example, rather than labeling someone's behavior as "harassing," (see "Negative Labels For the Other's Behavior" above) here's another option:
"She called me four times last Tuesday to ask if the report was done."
Focus on How Events Have Affected you:
Focus on how it affected you when the other person did X. For example:
"When she called me for the fourth time, I was very frustrated and irritated."
Follow the Ground Rules:
The ground rules established by the mediator are designed to help you have a productive conversation. Breaking them will decrease your chances of this occurring. Typical mediation ground rules include:
- Don't interrupt when the other person is speaking
- No deliberate "button-pushing" (personal attacks or insults)
These simple ground rules help avoid unproductive discussion and give you the best opportunity for reaching agreements.
Agree to Confidentiality:
While you can expect your mediator(s) to keep the conversation that occurs in mediation confidential, if you can agree to keep it confidential, as well, it will increase the chances that your mediation will be an honest discussion of the issues. While your agreeing to keep confidential what is discussed in mediation is not mandatory, if you do not agree to keep it confidential, think about how that will affect the other person. This refusal may cause her to decide not to mediate at all. Or, if she continues to mediate, she may limit what she is willing to discuss. So, if at all possible, agree to keep what is discussed in mediation confidential.
There may be another "stakeholder" in the situation who cares about the outcome (e.g., your boss). If this is the case, you and the other party can, if you like, agree to share any agreements developed in mediation with your boss. Sharing the agreements, however, does not mean discussing the content of "who said what." It means only providing a copy of the mediation agreement for the boss to read.
About Anger…
People involved in disputes often get angry. In order for the conversation to address real issues, if you are angry, this is a part of what may need to be discussed. However, the suggestion about making "I statements" and "asking open-ended questions" is very important to remember. For example, if someone were angry with you, to which of the following would you respond better?
- "I am angry that I have not received your response to my memo" or
- You jerk. Who do you think you are ignoring me when I take the time to write you a memo?"
No doubt, you'd prefer not to be called offensive names or asked insulting questions. Your anger is real and it may very well need to be expressed. Again, to the best of your ability, do so tactfully. It will not help your mediation succeed if you express it in ways that leaves the other person feeling insulted, threatened, or angry.
If the other person expresses anger in the mediation, listen. Try to understand what the person's anger is about. A common reaction, especially when anger is expressed in inappropriate ways, is to respond defensively and "strike back" (e.g., "You're just too sensitive!"). Even if you believe this to be true, it will not encourage the other person to make agreements with you. If nothing else, sit and allow the other person to "vent." Above all, do not interrupt her/him while s/he is expressing anger. This usually prolongs the length of time an individual feels the need to "vent."
About Fear…
When people engage in conflict one or both may feel fear. Some people feel fearful when others express anger toward them. Some people (and this often applies to men more often than it applies to women), have learned to mask their fear by expressing anger or making threats. If you feel fearful during your mediation, you may be tempted to engage in this type of behavior. Or, you may be tempted to admit to things you did not do or agree to things to which you do want to agree just to make the fear subside. Don't do either of these things! You have a number of other choices. One is to use an "I Statement" (e.g., "I feel afraid when you say X."). Another is to ask questions ("Why do you say that?"). If you can't think of anything else to do, ask for a "time out" or sit quietly until you feel composed enough to speak.
Some Other Things to Avoid:
Try not to minimize the other person's feelings (e.g., "What are you whining about? That's not so bad.").
Do not make negative judgments about what the other person has said, even if you believe what the person has said deserves a negative judgment (e.g., "These are just a bunch of lame excuses.").
Do not misrepresent or omit relevant facts. This can damage trust immeasurably if the other person catches – or even suspects – you are doing this.
Do not speak in a condescending or sarcastic way to the other person (e.g., "Well, so nice that you could take time away from your busy schedule to meet with me today!").
Do not demand that the other party apologize or admit to "wrong-doing." Most people won't apologize unless or until they believe what they did was wrong. Demands usually cause further resistance.
Do not make offensive or hostile non-verbal expressions (e.g., rolling the eyes, loud sighs, laughing, groaning when the other party speaks, or obscene gestures toward the other person).
Do not make threats to the other party. Even if you really intend to carry out a threat (e.g., filing a formal grievance or taking formal disciplinary action), making this threat against her/him in mediation is not likely to get her/his cooperation. It will likely set up a power struggle.
Do not shout at the other party. This may be very natural for you when you are angry, but it is not very likely to encourage her/him to cooperate with you.
Other Suggestions…
Acknowledge responsibility for any part of the problem you can. Note: Do this ONLY if it is genuine (e.g., "You know, I hadn't seen it before, but I can see why the way I approached you felt disrespectful to you.").
Allow the other person to "let off steam" without giving in to the natural inclination to defend or "fight back." Although this requires extreme self-control, if she has not expressed herself previously, it can be extremely valuable. Above all, do not interrupt her if she is "letting off steam." This will only lengthen the length of time she feels the need to vent.
Demonstrate appreciation for offers made by the other person to genuinely address your concerns (e.g., "I appreciate your agreeing to refrain from criticizing me in public in the future.")
If the other person suggests that she would like you to do something that you are willing to do, offer to do it! This builds trust because it may be seen as a demonstration of respect and good faith.
Demonstrate RESPECT for the dignity of the other person – even if you are angry or mistrustful toward her/him, and believe that the entire problem is her/his fault. Speaking to the other party in a disrespectful way could give her/him an opportunity to avoid the content of what you are saying – and a desire to shift the focus to YOUR disrespectful behavior. Don't give her/him this opportunity.
Apologize sincerely for anything you did or said to the other person that you now regret.
What if You Think the Agreement has Been Violated?
It is probably a good idea to "reality test" your agreement while you are developing it by discussing what you will do if either you or the other person believes, at some point in the future, that the agreement has been violated. Three options favored by many disputants are:
- Talk with one another privately about the perception (while adhering to all the other items in the agreement about how and when to talk with one another).
- Agree that you will return to mediation for further discussion.
- Agree that you will speak with your supervisor about the perception that the agreement has been violated. (This makes the most sense if your supervisor referred you to mediation.)
Sample Mediation Agreement Items
You might find it helpful to review the list below. These are common agreements made by a number of different people who participated in actual mediations…
X agrees that if he has concerns, suggestions, or questions about an issue related to Y, he will talk with Y privately within 24 hours.
Y agrees that he will make time to speak with X within 24 hours whenever X asks to speak with him.
Y agrees that if he has a concern about something X has allegedly said or done, he will avoid making assumptions and, instead, ask X about his concern.
X and Y agree that, during their discussions, if either indicates the need for "time out," the other will honor it and the person who requests a "time out" will initiate discussion of the issue within 24 hours.
X agrees that if he has concerns, suggestions, or questions about an issue discussed by Y in a meeting but believes it would be best for him not to speak about it during the meeting, he will talk with Y privately within 24 hours.
X and Y agree that they will talk to each other first about problems and/or concerns they have with each other before speaking with Z. If they are unable to resolve an issue between them, if either plans to speak to Z about the issue, he will tell the other prior to speaking to Z.
X agrees to raise any concerns s/he has about Y directly with Y and not to raise these concerns with others.
A Final Note:
You may be unwilling to implement the suggestions in this document, or you may believe that you "shouldn't have to change" any of your own behaviors in order to be treated differently by the other person. You are, of course, free to do – or not do – whatever you believe is in your best interests. If you demonstrate in mediation that you are unwilling to make any changes, mediation is likely to be an unsatisfactory experience for you. A more formal disciplinary or grievance process might be another option to consider. If, however, you are willing to implement these suggestions, you will be doing a great deal to increase the chances of having a successful mediation experience.


text:
Joaquim Rodriguez wins 2012 Giro di Lombardia
'Purito' attacked in the final part of the Salita di Ello, a 3.25 kilometer ascent at an average gradient of 7.4 percent, and held off a strong chasing group on the flat.
The win gave Rodriguez top spot in the WorldTour standings ahead of Great Britain's Tour de France champion Bradley Wiggins.
Spain's Samuel Sanchez of Euskaltel-Euskadi was second and Colombian Rigoberto Uran of Team Sky Procycling finished third.
"This is the most important triumph of my whole career," Rodriguez commented after being celebrated on the podium.
"For me it was a perfect season. I won Fleche Wallonne, I finished 2nd in the Giro d'Italia and third in Vuelta a Espana. After that I did my best in order to get ready for the World Championships and Giro di Lombardia. In the former my performance was so-so, but in the latter it was a triumph."
"Today I was feeling in great shape, so I made my teammates work during all the crucial moments of the race. When I saw that all my rivals were tired and I felt so great, I realized I had a great chance to win. To tell the truth I thought that somebody could join me in that attack, but instead nobody could answer and that makes this victory even greater."
As expected, the brutal climb to the Muro di Sormano sorted the men from the boys.
The two-kilometer ascent at an average gradient of some 15 percent blew the peloton apart with Alberto Contador (Team Saxo Bank-Tinkoff Bank), Vincenzo Nibali (Team Liquigas-Cannondale) and Rodriguez among those setting the pace in front.
Team BMC Racing's newly crowned World champion Philippe Gilbert crashed in the descent with about 70 kilometers to go and pulled out.
"He's got some burns and cuts but nothing serious," BMC team manager John Lelangue told RAI.
Team BMC Racing's Dr. Max Testa later confirmed Gilbert has superficial abrasions on his right elbow, right shoulder and right knee, but no major muscle problems, no broken bones and no concussion. "Right now it just looks he just has some bad road rash," Testa said.
Gilbert later explained he had just regained contact with the front group when he crashed while going 60 kilometers an hour.
"With the cold, I was feeling a bit paralyzed and, at the beginning, I was afraid because I couldn't move for one or two minutes and I was fearing there was something broken," Gilbert explained.
"Then I checked and saw everything was OK. So in the end it's a pity because I had good feelings and could have maybe done something. But I'm feeling lucky I crashed now and not one week ago. If it had been a stage race, I think I wouldn't have abandoned. But today, after the crash, my race was over."
Nibali also hit the deck in the descent from the Madonna del Ghisallo but he managed to get back on the bike and rejoin the peloton.
However, the Italian - one of the pre-race favorites with Contador, Rodriguez and Gilbert - had not fully recovered before the last ascent and could not be a factor in the finale.
Watch video highlights from the 2012 Giro di Lombardia and the World Championships in our videos section after the race (U.S.-only due to geo broadcast rights restrictions). Spread the word to friends and fellow cycling fans.


text:
Add vivid colour to your hair with La Riche semi permanent hair colour. Create beautiful ombre and even rainbow hair!
Colour: Tulip
Size: 88ml
Always do a strand test before full application
Wear gloves and cover nearby surfaces as product can stain skin and surfaces
For most vivid colour, use on well conditioned pre bleached hair
Vegan and cruelty free
Payment & Security
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.


text:
This policy describes privacy practices regarding information collected from the City of Rocky Mount website. It contains information about what data is collected and how that information is used. This policy may be updated periodically, so please check back from time to time.
This policy applies only to the official City of Rocky Mount website. When you follow a link to another website, even the site of another governmental agency, you are subject to the privacy policy of that site. You should check the privacy policies of each of these other sites if you have questions about how they handle personally identifiable information.
No personally identifiable information is collected from visitors who simply browse this site or who download information from it. While the web servers hosting this site maintain logs of user activity to help us manage the website, information stored in these logs does not identify you personally. These logs typically store things such as the domain name and IP address from which you accessed our site, the type of browser and operating system you used, the date and time you accessed our site, the pages visited, and the address of the site that you linked to us from (if you linked to our website from another website).
We may use this information to learn how many visitors we have, where they are coming from, which parts of our website are of most interest to visitors, and other facts that will help us improve the website and the services we offer.
The City of Rocky Mount accepts certain payment cards for online payments of water, sewer, electric, and gas utilities through Infinity.Link, our online utility billing and customer information system. Payment card information is transferred directly to a payment service using encryption technology. At no time is payment card information collected through online transactions stored in a City database. Neither credit card information nor other billing information about utility customers is regarded as public information under North Carolina state law.
Visitors who request services through this site may be required to furnish information in order for us to provide the service requested. The information collected is essentially similar to the information we would require if the visitor were requesting the service by any other means, including by telephone or an in-person visit to a City facility. The information may include personally identifiable information, such as your email address, name, home or work address or telephone number. We may need to share this information with other governmental agencies or organizations to provide the help you are requesting. We may also use it to help assess user needs and analyze trends to inform you of other products or services or to conduct research about your opinion of current services or of potential new services that may be offered.
The City does not sell, rent or lease its customer lists to third parties. The City of Rocky Mount may, from time to time, contact you on behalf of external business partners about a particular offering that may be of interest to you. In those cases, your unique personally identifiable information is not transferred to the third party. In addition, the City may share data with trusted partners to help us perform statistical analysis, send you email or postal mail, provide customer support, arrange for deliveries, etc. All such third parties are prohibited from using your personal information except to provide these services to the City, and they are required to maintain the confidentiality of your information.
The City of Rocky Mount exercises reasonable and customary levels of care to protect the information you provide to us from unauthorized access, use or disclosure. Portions of the website that collect or facilitate the collection of sensitive payment card information comply with relevant payment card industry requirements. Except where web pages on this site use https, you should not assume your connection is secure. The City will not be held liable for any injury or loss caused by the disclosure of your information, whether by security breach, accident, inadvertence, or any other act or failure to act.
Cookies or similar technology can make the Internet more useful by storing information about your preferences on a particular site. The use of cookies or similar technology is an industry standard, and this website, like many others, may use them to provide useful features for our users. Cookies in and of themselves do not personally identify you, although they do identify your computer. Most browsers are initially set up to accept cookies. If you prefer, you can set your browser to refuse cookies. However, you may not be able to take full advantage of this website if you do so.
The City of Rocky Mount is governed by the North Carolina public records laws. Only very narrowly defined types of information (such as electronic payment information and Social Security numbers) are exempt from disclosure as public records. If you have questions about the North Carolina public records laws, refer to N.C. Gen. Stat. Chapter 132. For purposes of determining whether information is a public record, information sent to us through this website is treated the same as information sent to us by mail or delivered to us in person.
No applications on this website seek to determine whether the visitor is a minor. Consequently, visitors should be aware that the collection of personal information requested from or volunteered by children online or by email will be treated in the same manner as information given by an adult. Among other things, this means that it will be public record and therefore will be subject to public access. We ask that parents guide their children when children are asked to provide personal information online. We ask that children get their parents' permission before providing any information to us.
This website uses 3rd party advertising platforms like Google AdWords, Facebook and Google Adwords Remarketing service to advertise on third party websites (including but not limited to Google, YouTube and Search Network Partners) to visitors who have viewed our website. This could be in the form of an advertisement on the Google search results page, or a site in the Google Display Network.
Third-party vendors, including Google and Facebook, use cookies to serve ads based on the history of visitors to our website. Visitor information collected is not personally identifiable and will be used in accordance with our own privacy policy and Google's privacy policy. You can set preferences for how Google advertises to you using the Google Ad Preferences page.


text:
The Parc de la Ciutadella is very idyllic and probably the greenest oasis in the megacity of Barcelona. It invites you to relax, to rebound and to go for long walks, as well as for a picnic. You can also use a rowing boat on the lake.
On the grounds of the Parc de la Ciutadella, there are several attractions: the zoo, the Catalan Parliament. The Museu d'Art Modern is situated in the building of the parliament. The Zoological Museum and the Museu de Geologia are placed in the area of the park.
In 1714, after the successful war at the time of Felip V., a citadel was placed on this ground. To build this fortress, Felip V. pulled away a considerable part of the quarter Ribera.
Therewith, the Bourbon king wanted to put the people under his control. La Ciutadella represented everything that the Catalans hated: the Bourbons and the central government in Madrid. Later, the Citadel was converted into a prison - mostly for political prisoners.
At the north-western entrance of the Parc de la Cuitadella, at the Passeig de Pujades, one will find a equestrian statue of General Prim, who gave the order for sanding the citadel in 1869.
The 1869 warrant for the grinding of Zidadelle existed. In 1998, the World Exhibition was placed here.
The park was designed under the command of Josep Fontsère, the young and then unknown architect Antoni Gaudí supported him with the design of the waterfall "Cascada. Gaudí immortalised himself on the fountain, which stands by the lake. The water basin in front of fountain is guarded by winged dragons, a figure quite commonly found in his work.
The Parlament de Catalunya can be vistited on the first Friday of the month with a guided tour (in Catalan). Similarly, the building is open to visitors on 11th September (the Catalan national holiday) and 12 th September. In the parliament building, the Museu d'Art Modern has got its place.
Many of the Modernism buildings are still preserved, but a little more attention to them and care would do well. Four very remarkable buildings are located on the side of Passeig de Picasso, the southwestern side of the Parc de la Ciutadella.
Castell dels Tres Dragons (Castle of the three Dragon)
The northernmost of the buildings, the Castell dels Tres Dragons (Castle of the three dragons), houses the Zoological Museum. The brick house is an example of early Modernism. The building was built in 1887 by architect Lluis Domènech i Montaner, one of the leading representatives of the Catalan Art Nouveau. Since 1920 it houses the Zoological Museum. The Castell dels Tres Dragon is a good example that the performance of Modernism in particular consisted of to combine different styles and techniques. The construction with bricks and bearing steal elements was inspired by the then very famous Amsterdam Stock Exchange. The towers and battlements are reminiscent of the Moorish style. The art to decorate building facades with ceramics, was revived and became an important technique of Modernism.
Right next to the Castell dels Tres Dragons the winter garden "L'Hivernacle" is located. The winter garden is a pavilion made of cast iron and glass. The architect was Josep Amargós. In the summer is a particularly nice café. There are also several jazz concerts. The plan had the building Amargós in 1884, at a time when the architecture had the steel and glass constructions by Eiffel as a model. The Hivernacle is still attributed to the Modernisme. The building was inaugurated in 1888 to the World Exposition.
Geological Museum
The Hivernacle located next to the building of the Geological Museum, built in 1882 by Antoni Rovira i Trias in neo-classical style. The construction of the museum was made possible by a donation from Francesc Martorell Peña. It was the first museum in Barcelona and it has today a large collection of minerals.
Umbracle - Tropical greenhouse for shade-loving plants
The Umbracle is a wood-brick construction. In it grow large tropical plants, which prefer the shadow of the great virgin forests. Although this building needs an urgent rehabilitation, but it offers a very impressive atmosphere in the interior. The architect was also Amargós, finished to the World Exposition in 1888.
Here you find the buildings on the map of the park, and here is the park on the city map.
Also on the grounds of the Parc de la Cuitadella is the Zoo of Barcelona.
Our tip: If you take the subway to the Parc de la Ciutadella , take the line L1 to station Arc de Triomf. Pass through the Arc de Triomf and head for the car-free Passeig de Lluis Companys directly to the main entrance.
You will get 20 % discount on entry price of the zoo with the Barcelona Card.
(Click on the product images to view prices and availability)
Find Hotels nearby
Parc de la Ciutadella
Metro: Arc de Triomf (L1, C1)
Bus Turístic: Parc de la Ciutadella - Zoo
Parking nearby
Opening times
Boat rental:
23 March to 22 September: daily 10.00 to 20.00
23 September to 22 March: täglich 10.00 to 18.00
Admission to the parc is free
Hire of the boats (prices respectively for 30 minutes):
2 persons: €6
3 persons: €9
4/5 persons: €10
Groups from 20 persons: €2
Book your accommodation in Barcelona here! All categories.
1-5*-hotel rooms, apartments, hostels.


text:
Are you looking for a reliable plumbing company in Droitwich Spa? Our plumbing team are always ready and on hand to make sure that all your plumbing needs are taken care of. Our team of professional plumbers are all fully certified and registered to take on any job necessary.
Our plumbers have extensive experience in the plumbing sector. We have at our disposal, a team of plumbers prepared to perform any installation or repair of plumbing in your home, business or property. Always sticking to any deadlines you may have.
We carry out all necessary plumbing installations for kitchens and bathrooms, facilities in Droitwich Spa. We deal with general plumbing breakdowns. We can perform sanitary hot water installations with solar panels in buildings and we undertake fully registered gas installations for homes and businesses.
Our Services Include
When you need a plumber, call us, we are the best plumbers in Droitwich Spa. Being fully accredited and highly qualified to do any job. We are economical and we also have an emergency service to solve any unexpected plumbing failures that cannot be foreseen.
We offer a comprehensive and personalized high quality service, to always give the best solutions to the demands of our customers in the Droitwich Spa area. We can handle any type of plumbing work quickly and professionally and work with all existing materials in the market: PVC, copper, polyethylene, etc.
We operate an unrivalled service in this area, simply down to our rates, our care for the Droitwich Spa community and our staff being the most knowledgeable about any plumbing problem.
Call our team today to perform any type of plumbing work, from a complete installation to small general repairs, such as fixing a cistern or unclogging a pipe in Droitwich Spa. Whatever your need or your problem, we always respond instantly to make sure you get the plumbing service you deserve. Our fully qualified engineers are at your service 6 days a week, every week. No job is too small nor too big. Our team is able to respond to any need, simply down to the fact we have the most knowledgeable & efficient plumbing team in Droitwich Spa.
We provide a number of services for our customers throughout Droitwich Spa including:
The service we offer is always tailored to each individual problem. We always devise the best plans and processes to make sure your plumbing problem is sorted in the shortest time possible whilst being the most cost effective. Furthermore, our technicians can carry out a study of your water installations in terms of pressure and flow, so we can determine if the operation is correct and how you can save on your water bill each year.
This guidance comes free of charge and reinforces our desire to be the best and make sure all our customers are saving as much as possible. We are able to install devices to avoid excessive water consumption: volumetric discharge regulators in WC tanks, energy-efficient showers, flow reducers or regulators for tanks and faucets in bathrooms and kitchens. They are small and fairly inexpensive solutions that in the long run give you a great advantage not only economically but environmentally.
Plumbing installations
Plumbing installations in properties that were done some time ago are undeniably outdated. This increases the risk of leaks in your property. It is always recommended to have one of our plumbing experts to take a look at your system. Our engineer will always advise you based on his knowledge and with your best interests at heart. Avoid leaks and damp walls by having one of our team take a look at your current setup. This is important as our experts can detect any type of problem before it becomes an expensive breakdown problem that could've been avoided. If you think your current setup will cause you a problem or you need us to check then do not hesitate to give us a call. You can trust our plumbing team, we will advise you and do a job of the highest quality, always respecting the time-frames for finishing outlined before we start any job.
Areas We Cover
We cover most areas surrounding Worcester city, England, West Midlands.
Some of them include the following list:
Call Our Droitwich Spa Plumbers Today!
Our affordable Droitwich Spa plumbers solve leaks, drips and damp every day. We detect, locate and repair them right there and then, which in turn allows for you to save water usage and money. We have the best plumbing specialists for this, who will make the repairs in the shortest time possible. We not only can solve basic toilet blockages and sink clogging problems, we are also able to provide more complex services such as unclogging a sewage system. These jobs tend to be urgent and we are always aware of this and get the plumbing issue sorted as soon as possible. Additionally, we are able to do the best job because we have the most up-to-date tools and machinery and use the latest techniques to ensure the job is done right and swiftly. We always try to cause the least discomfort and do all the work with diligence and speed, especially of course when it is an emergency. So give our office a call today and makes sure you get your plumbing problem sorted by the best plumbers in Droitwich Spa.
Contact Us:


text:
- 77% recycled polyester, 23% spandex
- Eco-friendly and sustainable materials
- Fabric weight: 235 g/m²
- Material percentages may vary slightly. Check label for actual content.
- Design is digitally printed first on raw fabric and then crafted into your product.
- Premium quality guaranteed by certified manufacturers of well-known brands.
- Product code: BAOP21W0001
Please note: All fabric is made to order, and color variations may occur between different orders. We work only with trusted suppliers with excellent ethics, compliance, sustainability, and social responsibility track records.
Shape Your Curves
A 3D high-waist ring belly.
Minimal seam lines create a smooth and buttery-soft feel throughout your legs.
1.5" wide "comfort zone", designed for a better body movement experience.
Premium Fabric
Four-way stretch peach skin fabric.
Made of fibers with a high knitting density, creating a smooth fabric that is durable, light and non-transparent.
Made with additional spandex fibers for added stretch and retention.
Wrinkle and pill resistant, even after repeated rubbing and washing.
Full-Length Protection
The 28'' full-length inseam offers a comprehensive lower body coverage and an undeniable cozy performance. It's intended to sit above the ankle for leg coverage.
An inner pocket is an ultimate convenience for you to stash essentials like your cards and phone.
The recycled polyester used in products is sourced from clear plastic water bottles.
They are cleaned and turned into pellets that are spun into new, high-quality yarn to create our premium apparel and to reduce environmental impact.
Do not add fabric softener; Do not bleach; Tumble dry; Do not iron; Do not dry clean.
IMPERIAL/IN XS S M L XL XXL XXXL Waist Width 22.4 24 25.6 27.2 28.7 30.3 31.9 Hip Width 31.1 32.7 34.3 35.8 37.4 39 40.6 Leg Opening 7.9 8.3 8.7 9.1 9.4 9.8 10.2 This size data was obtained manually measuring the product, it may vary up to 1"inch.
Model A is 5'5'' height, 154.3 lb weight and wears a size XL.
Model B is 5'8'' height, 121.3 lb weight and wears a size XS.
IMPERIAL/CM XS S M L XL XXL XXXL Waist Width 57 61 65 69 73 77 81 Hip Width 79 83 87 91 95 99 103 Leg Opening 20 21 22 23 24 25 26 This size data was obtained manually measuring the product, it may vary up to 2.54cm.
Model A is 168cm height, 70kg weight and wears a size XL.
Model B is 179cm height, 55kg weight and wears a size XS.
top of page
Excluding Sales Tax |
bottom of page


text:
Monopoly is Boring Because You've Been Playing It Wrong
You probably think of Monopoly as that excruciating board game you have to play with your family, unless your mom likes to make her nephews cry and it gets banned from the house (thanks, Mom!). It turns out it's not the Parker Bros.' fault that the game is so mind-numbingly dull -- it's yours. You've been playing it wrong all these years.
Think about it, when was the last time you read the rules to Monopoly? Have you ever even read the rules? The world owes a big debt of gratitude to gamer blog Critical Miss for pointing out one crucial step that people are skipping when they play Monopoly:
BUYING PROPERTY...Whenever you land on an unowned property you may buy that property from the Bank at its printed price. You receive the Title Deed card showing ownership; place it face up in front of you.
If you do not wish to buy the property, the Banker sells it at auction to the highest bidder. The buyer pays the Bank the amount of the bid in cash and receives the Title Deed card for that property. Any player, including the one who declined the option to buy it at the printed price, may bid. Bidding may start at any price."
Yeah, you read that right -- instead of hoping for a lucky roll to land you right on the property you want, it should immediately go up for auction when a person who lands on, say, Marvin Gardens decides they don't want it. Boom!
We're pretty sure it will still be banned from the house, because how much easier does this rule make it to bring a six-year-old to tears? Regardless, pretty exciting for anyone who wants to play a game of Monopoly in under nine hours.


text:
EDIT: This review has now been slightly redacted and changed because my blogging peers tell me I took my criticism of New American Library, Charles Santino and Joe Staton too far. I hope anyone who read the previous version didn't get terribly offended at my mentioning of money changing hands or speculation of how this graphic novel came to be, but I have commented on editorial style before, which was my justification for the original post. The rest of my opinions still stand.
Sometimes life brings you surprises. You hope that they are good surprises.
Then you open the package and realize that someone decided to make a comic-book version of Ayn Rand's famous novella, Anthem, and your heart sinks a little.
A lot of people don't like Anthem, but I'm not one of them. I think the book illustrates a good point about not forgetting individuality and ambition, especially in her post-technological apocalypse, communal world. Of course, Anthem was written during a time when Communism, and anything similar, was still widely feared. I liked it a lot better than Brave New World, which I read around the same time and felt totally uncomfortable with.
Anthem is about a man, Equality 7-2521, who doesn't feel quite right in his communal society where he works as a Sweeper. One day, while out sweeping, he finds a tunnel filled with old technology, the existence of which was nearly wiped out in an ancient battle. Since then, the individual has been systematically cleansed from society and everyone does as they are told, down to when they have sex. Intrigued by science and equipped with a bright mind, Equality 7-2521 re-invents the light bulb, woos the pretty Liberty 5-3000, tries to re-introduce electricity to society to make life easier and becomes a total pariah, taking Liberty 5-3000 with him. The pair then finds an old house and re-builds an individual-driven society after discovering the word "I" and the existence of ego.
Back to the graphic novel adaptation, apparently done by Charles Santino and Joe Staton, both of whom I've never heard of. The press release included in the package tells me Joe Staton won an Eisner award at some point. Is that so? I certainly expected more from an Eisner winner because…
The first thing you'll notice about this adaptation of Anthem is that the art on the cover looks awful and the interior art isn't even inked, which might have made the style slightly more bearable. The art seems to be in that awful style of 70s and 80s cartooning that assumes everyone in the Middle Ages wore a tunic and boots. The men are manly and bodily thick, unless they are villainous or a wimpy side character thrown in for laughs, and the women are gorgeous, blonde and full-lipped. But despite all this, the art is really blockish and square-like, even when things should be more curvaceous. Everything just oozes of cheesy Saturday morning cartoon. (Did I mention this adaptation felt a bit scrubbed clean to me?)
On top of that, every page only has three panels each, meaning that the comic's pacing feels more like a 4-koma manga that you quickly zip through instead of a deeply thoughtful narrative about a man's fight against a society who oppresses him. I've never fervently wished for wide open spaces on the pages of a comic book in ages, but here I was wishing for something, ANYTHING, other than three rectangles a page. You think someone could have fit it in somewhere, it would have made for a great visual metaphor if Equality 7-2521 broke through a panel somewhere. (And then the panel structure completely changed afterward.)
My biggest complaint however, is that there's no art to it at all, just characters doing stuff. If I were drawing this, I'd go all out and draw art deco motifs and Mucha-inspired characters when the narration turns away from action and goes into exposé. Does that happen? Nope, nope, nope. It's not that Staton isn't capable, I've taken a look at some of his other artwork for the purposes of this review, it's just that someone (or someones) didn't try very hard as they worked on this comic. It's pretty obvious to me that Staton is definitely a culprit here.
But let's not forget the story! This is where things get tricky. Anthem is almost completely narrated by Equality 7-2521 referring to himself in the royal we (because "I" doesn't exist for him during most of the story). This could make for a very un-dynamic comic in the hands of someone unimaginative. Unfortunately, Charles Santino was definitely not feeling creative when he wrote the script for this book. Like I said, it's just page after page of Equality 7-2521 doing stuff. There's about 35-45% of the comic that is actually Equality doing things in tandem with the narrative where it makes sense. The other 55-65% is where Rand gets eloquent and Santino just keeps writing Equality doing super-boring stuff. So we wind up getting a lot of boxes of narration that sort of conflict with whatever is happening in the art and completely fail to fit the mood of the words and the art. Something tells me Santino just copy-pasted the important lines of the book and scribbled in some basic action in order to give Staton a minimal amount of direction.
And that's just it, this work is minimal. Santino did the least amount of work necessary on the script and Staton did the same with the art. Is this because they weren't passionate about the work? Probably, I am sad to say. Anthem does a lot of showing and a lot of telling, but somehow the two don't ever seem to touch each other meaningfully and show readers what makes Anthem a good book. There is no love for the material in this adaptation. What a waste of the potential of a good book.
Don't buy this graphic novel. If you're interested in Ayn Rand, go buy the prose version of Anthem, because she is a good author despite the complete failure to re-capture her work here.
Where the heck is Steve Ditko when you need him?