<?php

include_once( ABSPATH . 'wp-admin/includes/file.php' );
include_once( ABSPATH . 'wp-admin/includes/admin.php' );


function ds1_truncate_first($string,$length=100,$append="&hellip;") {
	if (empty($string)) { return $string; }
  $string = trim($string);
  if(strlen($string) > $length) {
    $string = wordwrap($string, $length,'{{cut==}}');
  $string = explode("{{cut==}}", $string, 2);
   $string = $string[0] . $append;
  }

  return $string;
}

function ds1_lipsum($lang){
    $lipsum = [
        "en"=>"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.",
    
        "ar"=>'لوريم إيبسوم(Lorem Ipsum) هو ببساطة نص شكلي (بمعنى أن الغاية هي الشكل وليس المحتوى) ويُستخدم في صناعات المطابع ودور النشر. كان لوريم إيبسوم ولايزال المعيار للنص الشكلي منذ القرن الخامس عشر عندما قامت مطبعة مجهولة برص مجموعة من الأحرف بشكل عشوائي أخذتها من نص، لتكوّن كتيّب بمثابة دليل أو مرجع شكلي لهذه الأحرف. خمسة قرون من الزمن لم تقضي على هذا النص، بل انه حتى صار مستخدماً وبشكله الأصلي في الطباعة والتنضيد الإلكتروني. انتشر بشكل كبير في ستينيّات هذا القرن مع إصدار رقائق "ليتراسيت" (Letraset) البلاستيكية تحوي مقاطع من هذا النص، وعاد لينتشر مرة أخرى مؤخراَ مع ظهور برامج النشر الإلكتروني مثل "ألدوس بايج مايكر" (Aldus PageMaker) والتي حوت أيضاً على نسخ من نص لوريم إيبسوم.',
    ];

    if(isset($lipsum[$lang])) {
        return $lipsum[$lang];
    }
    
}
function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}

function get_main_menu_data(){
	$menu_name = (DEFAULT_LANGUAGE == "ar") ? 'القائمة الأساسية' : 'Main Menu';
	$the_menu = get_term_by( 'name', $menu_name, 'nav_menu' );

	return $the_menu;
}

function ds1_shuffle_assoc(&$array) {
    $keys = array_keys($array);

    shuffle($keys);

    foreach($keys as $key) {
        $new[$key] = $array[$key];
    }

    $array = $new;

    return $array;
}

function ds1_upload_image($url, $post_id) {
    $image = "";
	
    if($url != "") {
     
        $file = array();
        $file['name'] = $url;
        $file['tmp_name'] = download_url($url);
 
        if (is_wp_error($file['tmp_name'])) {
            @unlink($file['tmp_name']);
            var_dump( $file['tmp_name']->get_error_messages( ) );
        } else {
            $attachmentId = media_handle_sideload($file, $post_id);
             
            if ( is_wp_error($attachmentId) ) {
                @unlink($file['tmp_name']);
                var_dump( $attachmentId->get_error_messages( ) );
            } else {                
                return $attachmentId;
            }
        }
    }
    return $image;
}


function ds1_add_update_posts($pages, $info=array()) {
	$the_menu = get_main_menu_data();
	
	foreach($pages as $page) {

		if(isset($page['post_name']) && get_page_by_path( $page['post_name'] ) && get_page_by_path( $page['post_name'] )->ID) {
			continue;
			
		} else {
			$my_post = array(
				'ID'          	=> ( isset($page['ID']) ) ? $page['ID'] : 0,
				'post_type'		=> $info['post_type'],
				'post_title'   	=> $page['post_title'],
				'post_content' 	=> ( isset($page['post_content']) ) ? $page['post_content'] : '',
				'post_name' 	=> ( isset($page['post_name']) ) ? $page['post_name'] : '',
				'post_status' 	=> ( isset($page['post_status']) ) ? $page['post_status'] : 'publish',
				'post_excerpt'	=> ( isset($page['post_excerpt']) ) ? $page['post_excerpt'] : DEFAULT_DESCRIPTION,
			);
			
			if( isset($page['ID']) && $page['ID'] != 0 ) {
				wp_update_post( $my_post );
				$new_p_id =  $page['ID'];
				
			} else {
				$new_p_id = wp_insert_post( $my_post );
			}
			
			if( empty($new_p_id) ) {continue;}
			
			if(isset($page['p_template'])) {
				update_post_meta( $new_p_id, '_wp_page_template', $page['p_template'] );
			}
			
			if(isset($page['meta']) && is_array($page['meta'])) {
				foreach($page['meta'] as $key => $meta){
					update_field( $key, $meta, $new_p_id );
				}
			}
			

			if( isset($page['page_cover_type']) && $page['page_cover_type']){
				update_field('page_cover_type', $page['page_cover_type'], $new_p_id);

				if($page['page_cover_type'] == 'photo' ) {
					$up_images = ds1_upload_image($page['covers'], $new_p_id);
					update_field('page_cover_photo', $up_images, $new_p_id);

					if( isset($page['covers_mob']) && $page['covers_mob']) {
						$up_images = ds1_upload_image($page['covers_mob'], $new_p_id);
						update_field('page_cover_photo_mob', $up_images, $new_p_id);
					}
				}

				else if($page['page_cover_type'] == 'slider' && is_array($page['covers'])){
					$up_images = array();
					foreach($page['covers'] as $meta){
						$up_images[] = ds1_upload_image($meta, $new_p_id);
					}
					update_field('page_cover_slider', $up_images, $new_p_id);

					if( isset($page['covers_mob']) && $page['covers_mob']) {
						$up_images = array();
						foreach($page['covers_mob'] as $meta){
							$up_images[] = ds1_upload_image($meta, $new_p_id);
						}
						update_field('page_cover_slider_mob', $up_images, $new_p_id);
					}
				}

				//.. page_cover_video page_cover_video_mob page_cover_video_cover Youtube


			}


			if( isset($page['thumbnail']) && $page['thumbnail']){
				$up_images = ds1_upload_image($page['thumbnail'], $new_p_id);
				update_field('_thumbnail_id', $up_images, $new_p_id);
			}




			if(isset($page['covers']) && is_array($page['covers'])) {
				$up_images = array();
				foreach($page['covers'] as $meta){
					$up_images[] = ds1_upload_image($meta, $new_p_id);
				}
				update_field('primary_photo', $up_images, $new_p_id);
			}
			
			if(isset($page['covers_mob']) && is_array($page['covers_mob'])) {
				$up_images = array();
				foreach($page['covers_mob'] as $meta){
					$up_images[] = ds1_upload_image($meta, $new_p_id);
				}
				update_field('primary_photo_mob', $up_images, $new_p_id);
			}
			
			if(isset($page['term'])) {
				wp_set_object_terms( $new_p_id, $page['term']['term'], $page['term']['tax'] );
			}
			
			if(isset($page['add_to_menu']) && $page['add_to_menu']) {
				
				wp_update_nav_menu_item($the_menu->term_id, 0, array(
					'menu-item-title' 		=> $page['post_title'],
					'menu-item-object-id' 	=> $new_p_id,
					'menu-item-object' 		=> 'page',
					'menu-item-status' 		=> 'publish',
					'menu-item-type' 		=> 'post_type',
				));
			}
			
			// if(isset($page['pp_var_name'])) {
			// 	echo 'private $'.$page['pp_var_name']. '	= array(\'ar\'=>'. $new_p_id. ', \'en\'=>0);<br>';
			// }
			
		}
		
	
	}
	
	
	
	
	
}