123aa8f9 by Jeff Balicki

pop up

Signed-off-by: Jeff <jeff@gotenzing.com>
1 parent 6cdf0a67
Showing 37 changed files with 157 additions and 609 deletions
.swal2-popup .swal2-title
{
font-weight: normal !important;
font-size: 21px !important
}
.swal2-popup .swal2-styled:focus {
box-shadow: none !important;
}
.swal2-show {
border: none !important;
}
button.swal2-confirm.swal2-styled
{
font-size: 14px !important;
padding: 5px 25px !important;
}
h1:not(.site-title):before, h2#swal2-title:before {
content: "" !important;
height: 0;
}
/* Display Popup when Contact Form 7 successfully submitted */
document.addEventListener( 'wpcf7mailsent', function( event ) {
var currentformid = event.detail.contactFormId;
var popup_id = event.detail.apiResponse.popup_id;
//Store popup background color and search , is aveliable or not if not aveliable then it is normal color or gradient color
if( event.detail.apiResponse.popup_background_option == "bg_color")
{
var color_code = event.detail.apiResponse.popup_background_color;
}
if(event.detail.apiResponse.popup_background_option === "gradient_color")
{
var color_code = 'linear-gradient('+ event.detail.apiResponse.popup_gradient_color +','+ event.detail.apiResponse.popup_gradient_color1 +')';
}
if(event.detail.apiResponse.popup_background_option === "image")
{
var color_code = ' url("' + event.detail.apiResponse.popup_image_color + '")right center / cover no-repeat';
}
if (popup_id != null && popup_id != '') {
//popup box
swal({
// set popup background color and image
background: color_code,
// set popup message
title: '<span style="color:' + event.detail.apiResponse.popup_text_color +'">'+event.detail.apiResponse.popup_message+'</span>',
confirmButtonColor: event.detail.apiResponse.popup_button_background_color,
confirmButtonText: '<span style="color:' + event.detail.apiResponse.popup_text_color +'">'+event.detail.apiResponse.popup_button_text+'</span>',
// set popup width
width: event.detail.apiResponse.m_popup_width,
//set popup duration time in seconds
timer: event.detail.apiResponse.m_popup_duration,
})
jQuery('.swal2-modal').css('border-radius', event.detail.apiResponse.m_popup_radius+"px");
}
}, false );
jQuery(function($){
/*
* Select/Upload image(s) event
*/
$('body').on('click', '.misha_upload_image_button', function(e){
e.preventDefault();
var button = $(this),
custom_uploader = wp.media({
title: 'Insert image',
library : {
// uncomment the next line if you want to attach image to the current post
// uploadedTo : wp.media.view.settings.post.id,
type : 'image'
},
button: {
text: 'Use this image' // button label text
},
multiple: false // for multiple image selection set to true
}).on('select', function() { // it also has "open" and "close" events
var attachment = custom_uploader.state().get('selection').first().toJSON();
$(button).removeClass('button').html('<img class="true_pre_image" src="' + attachment.url + '" style="max-width:100px;height:100px;display:block;" />').next().val(attachment.id).next().show();
jQuery(".hidden_img").val(attachment.url);
/* if you sen multiple to true, here is some code for getting the image IDs
var attachments = frame.state().get('selection'),
attachment_ids = new Array(),
i = 0;
attachments.each(function(attachment) {
attachment_ids[i] = attachment['id'];
console.log( attachment );
i++;
});
*/
})
.open();
});
$('body').on('click', '.misha_upload_image_button_failer', function(e){
e.preventDefault();
var button = $(this),
custom_uploader = wp.media({
title: 'Insert image',
library : {
// uncomment the next line if you want to attach image to the current post
// uploadedTo : wp.media.view.settings.post.id,
type : 'image'
},
button: {
text: 'Use this image' // button label text
},
multiple: false // for multiple image selection set to true
}).on('select', function() { // it also has "open" and "close" events
var attachment = custom_uploader.state().get('selection').first().toJSON();
$(button).removeClass('button').html('<img class="true_pre_image" src="' + attachment.url + '" style="max-width:100px;height:100px;display:block;" />').next().val(attachment.id).next().show();
jQuery(".failure_hidden_img").val(attachment.url);
/* if you sen multiple to true, here is some code for getting the image IDs
var attachments = frame.state().get('selection'),
attachment_ids = new Array(),
i = 0;
attachments.each(function(attachment) {
attachment_ids[i] = attachment['id'];
console.log( attachment );
i++;
});
*/
})
.open();
});
/*
* Remove image event
*/
$('body').on('click', '.misha_remove_image_button', function(){
$(this).hide().prev().val('').prev().addClass('button').html('Upload image');
return false;
});
});
<?php
/**
* Plugin Name: Popup Message for Contact Form 7
* Description: This plugin will show the popup when Contact Form 7 has been submitted.
* Version: 2.0
* Author: Ocean Infotech
* Author URI: Author's website
*/
if (!defined('ABSPATH')) {
die('-1');
}
if (!defined('CF7POPUP_PLUGIN_NAME')) {
define('CF7POPUP_PLUGIN_NAME', 'Contact Form 7 Popup');
}
if (!defined('CF7POPUP_PLUGIN_VERSION')) {
define('CF7POPUP_PLUGIN_VERSION', '1.0.0');
}
if (!defined('CF7POPUP_PLUGIN_FILE')) {
define('CF7POPUP_PLUGIN_FILE', __FILE__);
}
if (!defined('CF7POPUP_PLUGIN_DIR')) {
define('CF7POPUP_PLUGIN_DIR',plugins_url('', __FILE__));
}
if (!defined('CF7POPUP_DOMAIN')) {
define('CF7POPUP_DOMAIN', 'cf7popup');
}
if (!class_exists('CF7POPUPMAIN')) {
class CF7POPUPMAIN {
protected static $CF7POPUPMAIN_instance;
//Load all includes files
function includes() {
include_once('popup_panel.php');
include_once('save_popup_setting.php');
include_once('submit_popup_settings.php');
}
function init() {
add_action( 'admin_init', array($this, 'CF7POPUPMAIN_load_plugin'), 11 );
add_action( 'admin_enqueue_scripts', array($this, 'CF7POPUP_load_admin_script_style'));
add_action( 'wp_enqueue_scripts', array($this, 'CF7POPUP_load_front_script_style'));
add_action( 'admin_enqueue_scripts', array($this, 'CF7POPUP_load_front_script_style'));
}
function CF7POPUPMAIN_load_plugin() {
if ( ! ( is_plugin_active( 'contact-form-7/wp-contact-form-7.php' ) ) ) {
add_action( 'admin_notices', array($this,'CF7POPUPMAIN_install_error') );
}
}
function CF7POPUPMAIN_install_error() {
deactivate_plugins( plugin_basename( __FILE__ ) );
delete_transient( get_current_user_id() . 'cf7error' );
echo '<div class="error"><p> This plugin is deactivated because it require <a href="plugin-install.php?tab=search&s=contact+form+7">Contact Form 7</a> plugin installed and activated.</p></div>';
}
//Add JS and CSS on Backend
function CF7POPUP_load_admin_script_style() {
wp_enqueue_media();
wp_enqueue_script( 'pmfcf-wp-media-uploader', plugins_url( 'popup-message-for-contact-form-7-pro/js/wp_media_uploader.js', __DIR__ ) );
}
//Add JS and CSS on Frontend
function CF7POPUP_load_front_script_style() {
wp_enqueue_script( 'pmfcf-script-popupscript', plugins_url( '/js/popupscript.js', __FILE__ ) );
wp_enqueue_script( 'pmfcf-script-sweetalert2', plugins_url( '/js/sweetalert2.all.min.js', __FILE__ ) );
wp_enqueue_script( 'pmfcf-jscolor', plugins_url( '/js/jscolor.js', __FILE__ ) );
wp_enqueue_style( 'pmfcf-sweetalert2-style', plugins_url( '/css/sweetalert2.min.css', __FILE__ ) );
wp_enqueue_style( 'pmfcf-style', plugins_url( '/css/style.css', __FILE__ ) );
}
//Plugin Rating
public static function do_activation() {
set_transient('ocinsta-first-rating', true, MONTH_IN_SECONDS);
}
public static function CF7POPUPMAIN_instance() {
if (!isset(self::$CF7POPUPMAIN_instance)) {
self::$CF7POPUPMAIN_instance = new self();
self::$CF7POPUPMAIN_instance->init();
self::$CF7POPUPMAIN_instance->includes();
}
return self::$CF7POPUPMAIN_instance;
}
}
add_action('plugins_loaded', array('CF7POPUPMAIN', 'CF7POPUPMAIN_instance'));
register_activation_hook(CF7POPUP_PLUGIN_FILE, array('CF7POPUPMAIN', 'do_activation'));
}
=== Popup Message for Contact Form 7===
Tested up to: 5.2
Tags: contact form 7,contact form, Error message,message popup , submit form
Donate link: https://bit.ly/2CqhQq7
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html
CF7 Lightbox Popup Success is offering features like Add Success And Error message in to Fronted side in contact form 7
== Description ==
CF7 Lightbox Popup Success is offering features like **Add Success and Error message Popup** in to Fronted side in contact form 7.
In wordpress admin there is all setting to popup to customize background color, font size and font color.
&#128312; **[Demos](http://oceanwebguru.com/)**
> **Plugin Features**
>
> * Create popup for any Contact Form 7 form
> * Pre-Define Success Popup Template
> * Use different Success popups for different form
> * Shows Success popup when form submitted successfully
> * Customize Success Popup content
> * Customize Success Popup background color
> * Customize Success Popup font color
> * Customize Success Popup button-text
> * Customize Success Popup button color
> * Customize Success Popup Duration time
> * Customize Success Popup Background image
> * Customize Success Popup gradient colors
> * Popup is fully responsive
> * Compatible in all major browser
&#128312; **[Purchase Pro](https://www.xeeshop.com/product/contact-form-7-popup-message-pro/)**
> **Plugin Pro Features**
>
> * Create popup for any Contact Form 7 form
> * Pre-Define Success and Faild Popup Template
> * Use different Success and Faild popups for different form
> * Shows Success and Faild popup when form submitted successfully
> * Customize Success and Faild Popup content
> * Customize Success and Faild Popup background color
> * Customize Success and Faild Popup font color
> * Customize Success and Faild Popup button-text
> * Customize Success and Faild Popup button color
> * Customize Success and Faild Popup Duration time
> * Customize Success and Faild Popup Background image
> * Customize Success and Faild Popup gradient colors
> * Popup is fully responsive
> * Compatible in all major browser
> * Fast Customer Support
&#128312; **[Donation](https://bit.ly/2CqhQq7)**
**Our More Plugin**
&#128312; [**Cf7 Product List Dropdown**](https://wordpress.org/plugins/cf7-product-list-dropdown/)
&#128312; [**Popup Message for Contact Form 7**](https://wordpress.org/plugins/popup-message-for-contact-form-7/)
&#128312; [**Min and max Qty Rule Woocommerce**](https://wordpress.org/plugins/min-and-max-woocommerce-purchase-rule-by-product-category/)
&#128312; [**Post Slider**](https://wordpress.org/plugins/post-slider-by-oc/)
&#128312; [**Instagram Slider and Gallery**](https://wordpress.org/plugins/oc-instagram-slider/)
== Screenshots ==
1. screenshot-1.png
2. screenshot-2.png
3. screenshot-3.png
4. screenshot-4.png
5. screenshot-5.png
<?php
if (!defined('ABSPATH'))
exit;
if (!class_exists('CF7POPUP_save_menu')) {
class CF7POPUP_save_menu {
protected static $instance;
function CF7POPUP_wpcf7_after_save( $instance) {
$formid = $instance->id;
if(!empty($_POST['enabled_popup_val'])) {
$enabled_popup_id = $formid;
}else{
$enabled_popup_id = "";
}
if(!empty($_POST['enabled_failure_popup_val'])) {
$enabled_failure_popup_id = $formid;
}else{
$enabled_failure_popup_id = "";
}
// Add or Update popup general settings
update_post_meta( $formid, 'enabled-popup', $enabled_popup_id );
$popup_message_data = sanitize_text_field($_POST['popup_message']);
update_post_meta( $formid, 'popup_message', $popup_message_data );
$m_popup_width_data = sanitize_text_field($_POST['m_popup_width']);
update_post_meta( $formid, 'm_popup_width', $m_popup_width_data );
$m_popup_radius = sanitize_text_field($_POST['m_popup_radius']);
update_post_meta( $formid, 'm_popup_radius', $m_popup_radius );
$m_popup_duration_data = sanitize_text_field($_POST['m_popup_duration']);
update_post_meta( $formid, 'm_popup_duration', $m_popup_duration_data );
$popup_templet_data = sanitize_text_field($_POST['popup_templet']);
update_post_meta( $formid, 'popup_templet', $popup_templet_data );
if($popup_templet_data == "templet1"){
update_post_meta( $formid, 'popup_background_option', "bg_color");
update_post_meta( $formid, 'popup_background_color', "#34495e" );
update_post_meta( $formid, 'popup_text_color', "#ffffff" );
update_post_meta( $formid, 'popup_button_background_color', "#27ad5f" );
}
if($popup_templet_data == "templet2"){
update_post_meta( $formid, 'popup_background_option', "gradient_color");
update_post_meta( $formid, 'popup_gradient_color', "#CD5C5C");
update_post_meta( $formid, 'popup_gradient_color1', "#FFA07A");
update_post_meta( $formid, 'popup_text_color', "#000000" );
update_post_meta( $formid, 'popup_button_background_color', "#ffffff" );
}
if($popup_templet_data == "templet3"){
update_post_meta( $formid, 'popup_background_option', "image");
update_post_meta( $formid, 'popup_image_color', plugins_url( 'popup-message-for-contact-form-7/images/pexels-photo-1191710.jpeg'));
update_post_meta( $formid, 'popup_text_color', "#ffffff" );
update_post_meta( $formid, 'popup_button_background_color', "#51654e" );
}
if($popup_templet_data == "templet4"){
update_post_meta( $formid, 'popup_background_option', "gradient_color");
update_post_meta( $formid, 'popup_gradient_color', "#268717");
update_post_meta( $formid, 'popup_gradient_color1', "#A6EF9B");
update_post_meta( $formid, 'popup_text_color', "#000000" );
update_post_meta( $formid, 'popup_button_background_color', "#ffffff" );
}
if($popup_templet_data == "templet5"){
update_post_meta( $formid, 'popup_background_option', "image");
update_post_meta( $formid, 'popup_image_color', plugins_url( 'popup-message-for-contact-form-7/images/background-brick-brickwork-268966.jpg'));
update_post_meta( $formid, 'popup_text_color', "#ffffff" );
update_post_meta( $formid, 'popup_button_background_color', "#FF9800" );
}
if($popup_templet_data == "custom_templet"){
update_post_meta( $formid, 'popup_background_option', 'bg_color' );
update_post_meta( $formid, 'popup_background_color', "#34495e" );
update_post_meta( $formid, 'popup_text_color', "#ffffff" );
update_post_meta( $formid, 'popup_button_background_color', "#51654e" );
}
}
function init() {
add_action( 'wpcf7_after_save', array( $this, 'CF7POPUP_wpcf7_after_save'), 10, 1 );
}
public static function instance() {
if (!isset(self::$instance)) {
self::$instance = new self();
self::$instance->init();
}
return self::$instance;
}
}
CF7POPUP_save_menu::instance();
}
<?php
if (!defined('ABSPATH'))
exit;
if (!class_exists('CF7POPUP_submit_menu')) {
class CF7POPUP_submit_menu {
protected static $instance;
function CF7POPUP_wpcf7_ajax_json_echo( $items, $result ) {
$formid = $_REQUEST['_wpcf7'];
$items["popup_id"] = get_post_meta( $formid, 'enabled-popup', true );
$items["failure_popup_id"] = get_post_meta( $formid, 'enabled-popup-failure', true );
// Check popup message if text is not available then it pass default text
if( ! empty(get_post_meta( $formid, 'popup_message', true ))){
$items["popup_message"] = get_post_meta( $formid, 'popup_message', true );
}else{
$items["popup_message"] = "Form has been submitted successfully.";
}
// Check popup width if width is not available then it pass default width
if( ! empty(get_post_meta( $formid, 'm_popup_width', true ))){
$items["m_popup_width"] = get_post_meta( $formid, 'm_popup_width', true );
}else{
$items["m_popup_width"] = "500px";
}
// Check popup border radius if border radius is not available then it pass default border radius
if( ! empty(get_post_meta( $formid, 'm_popup_radius', true ))){
$items["m_popup_radius"] = get_post_meta( $formid, 'm_popup_radius', true );
}else{
$items["m_popup_radius"] = "10px";
}
// Check popup duration time if duration time is not available then it pass default duration time
if( ! empty(get_post_meta( $formid, 'm_popup_duration', true ))){
$items["m_popup_duration"] = get_post_meta( $formid, 'm_popup_duration', true );
}else{
$items["m_popup_duration"] = "100000000000";
}
// Check popup background option if option is not available then it pass popup background option
if( ! empty(get_post_meta( $formid, 'popup_background_option', true ))){
$items["popup_background_option"] = get_post_meta( $formid, 'popup_background_option', true );
}else{
$items["popup_background_option"] = "bg_color";
}
// Check popup background color if color is not available then it pass default color
if( ! empty(get_post_meta( $formid, 'popup_background_color', true ))){
$items["popup_background_color"] = get_post_meta( $formid, 'popup_background_color', true );
}else{
$items["popup_background_color"] = "#fff";
}
// Check popup background image if image is not available then it pass blank value
if( ! empty(get_post_meta( $formid, 'popup_image_color', true ))){
$items["popup_image_color"] = get_post_meta( $formid, 'popup_image_color', true );
}else{
$items["popup_image_color"] = plugins_url( '/popup-message-for-contact-form-7/popup_img2.png');
}
// Check popup background gradient color if gradient color is not available then it pass gradient color
if( ! empty(get_post_meta( $formid, 'popup_gradient_color', true ))){
$items["popup_gradient_color"] = get_post_meta( $formid, 'popup_gradient_color', true );
}else{
$items["popup_gradient_color"] = "#fff";
}
// Check popup background gradient color 2 if gradient color 2 is not available then it pass gradient color
if( ! empty(get_post_meta( $formid, 'popup_gradient_color1', true ))){
$items["popup_gradient_color1"] = get_post_meta( $formid, 'popup_gradient_color1', true );
}else{
$items["popup_gradient_color1"] = "#FF0000";
}
// Check popup text color if color is not available then it pass default color
if( ! empty(get_post_meta( $formid, 'popup_text_color', true ))){
$items["popup_text_color"] = get_post_meta( $formid, 'popup_text_color', true );
}else{
$items["popup_text_color"] = "#000";
}
// Check popup button text if text is not available then it pass default text
if( ! empty(get_post_meta( $formid, 'popup_button_text', true ))){
$items["popup_button_text"] = get_post_meta( $formid, 'popup_button_text', true );
}else{
$items["popup_button_text"] = "Ok";
}
// Check popup button background color if color is not available then it pass default color
if( ! empty(get_post_meta( $formid, 'popup_button_background_color', true ))){
$items["popup_button_background_color"] = get_post_meta( $formid, 'popup_button_background_color', true );
}else{
$items["popup_button_background_color"] = "#3085d6";
}
return $items;
}
function init() {
add_filter( 'wpcf7_ajax_json_echo', array( $this, 'CF7POPUP_wpcf7_ajax_json_echo'), 10, 2 );
}
public static function instance() {
if (!isset(self::$instance)) {
self::$instance = new self();
self::$instance->init();
}
return self::$instance;
}
}
CF7POPUP_submit_menu::instance();
}
......@@ -15263,6 +15263,56 @@ element.style {
line-height: 25px;
}
.modal-content {
border-radius: 0px !important;
}
.modal-header {
border-bottom: 0px;
}
.modal-header h2, .modal-header .h2 {
margin-top: 0px;
}
.modal-header .btn-close {
top: -10px;
position: relative;
}
.modal-body {
padding-top: 0px;
}
.modal-body a {
color: #1A3668 !important;
text-decoration: none;
}
.modal-body a:hover {
text-decoration: underline;
}
.modal-footer {
border-top: 0px;
}
.contest-close {
background-color: transparent !important;
text-transform: uppercase;
max-width: 100px;
float: right;
border: 1px solid #183668 !important;
color: #183668 !important;
transition: ease-out 0.5s;
margin-top: 20px;
margin: auto;
padding: 10px 20px;
}
.contest-close:hover {
background-color: transparent !important;
color: #fff !important;
box-shadow: inset 100px 0 0 0 #183668;
transition: ease-out 0.5s;
}
#wrapper-footer {
background-color: #183668;
width: 100%;
......
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
......@@ -65,6 +65,39 @@ $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'full' );
</div><!-- #content -->
</div><!-- #<?php echo $wrapper_id; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- ok. ?> -->
<div class="modal fade" id="contest_popup" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h2 class="modal-title" id="exampleModalLabel">Thank you for your entry!</h2>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
5 winners will be drawn on . If you’re one of them (fingers crossed), we’ll be in touch! For full giveaway details, go to <a href="https://stellervista.ca/giveaway-details/">Giveaway Details.</a>
</div>
<div class="modal-footer">
<button type="button" class="contest-close" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="contact_popup" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h2 class="modal-title" id="exampleModalLabel">Thank you!</h2>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="contest-close" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<?php
get_footer();
......
......@@ -6854,6 +6854,17 @@
$(this).parents('.wp-block-columns').attr("style", 'background-image:url(' + $(this).children('img').attr('src') + ');');
$(this).children('img').hide();
});
document.addEventListener('wpcf7mailsent', function (event) {
if ('6' == event.detail.contactFormId) {
// Change 34 to the ID of the form
jQuery('#contest_popup').modal('show'); //this is the bootstrap modal popup id
}
if ('108' == event.detail.contactFormId) {
// Change 34 to the ID of the form
jQuery('#contact_popup').modal('show'); //this is the bootstrap modal popup id
}
}, false);
});
exports.Alert = alert;
......
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
......@@ -9,5 +9,17 @@ jQuery( document ).ready(function($) {
$(this).parents('.wp-block-columns').attr("style", 'background-image:url('+$(this).children('img').attr('src')+');')
$(this).children('img').hide();
})
});
document.addEventListener( 'wpcf7mailsent', function( event ) {
if ( '6' == event.detail.contactFormId ) { // Change 34 to the ID of the form
jQuery('#contest_popup').modal('show'); //this is the bootstrap modal popup id
}
if ( '108' == event.detail.contactFormId ) { // Change 34 to the ID of the form
jQuery('#contact_popup').modal('show'); //this is the bootstrap modal popup id
}
}, false );
})
......
......@@ -87,3 +87,53 @@ element.style {
font-size: 20px;
line-height: 25px;
}
.modal-content{
border-radius: 0px !important;
}
.modal-header{
border-bottom:0px ;
h2{
margin-top: 0px;
}
.btn-close{
top: -10px;
position: relative;
}
}
.modal-body {
padding-top: 0px;
a {
color:#1A3668 !important;
text-decoration: none;
}
a:hover{
text-decoration: underline;
}
}
.modal-footer{
border-top:0px ;
}
.contest-close{
background-color: transparent !important;
text-transform: uppercase;
max-width: 100px;
float: right;
border: 1px solid #183668 !important;
color: #183668 !important;
transition: ease-out 0.5s;
margin-top: 20px;
margin: auto;
padding: 10px 20px;
}
.contest-close:hover{
background-color: transparent !important;
color: #fff !important;
box-shadow: inset 100px 0 0 0 #183668;
transition: ease-out 0.5s;
}
\ No newline at end of file
......