Files
2026-05-20 21:32:17 +03:00

485 lines
18 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
define('JS_URL', '/wp-content/themes/iqon/js');
define('CSS_URL', '/wp-content/themes/iqon/css');
define('IMAGE_URL', '/wp-content/themes/iqon/images');
register_nav_menus( array('principal' => 'Meniu principal') );
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size(208,142, true);
add_image_size('case-study', 435);
/*add_image_size('home-slider', 700, 495, true);
add_image_size('article-page', 320, 226, true);
add_image_size('listing-article', 160, 113, true);
add_image_size('product-image', 560, 420, false);
add_image_size('gallery', 9999, 600, false);
*/
if (!is_admin()) {
wp_deregister_script('jquery');
wp_register_script('jquery', ('https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js'), false, '3.7.1');
wp_register_script('jquery-ui', ('https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js'), array('jquery'), '1.13.2');
wp_enqueue_script('jquery-ui');
}
show_admin_bar(false);
add_editor_style();
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);
automatic_feed_links(false);
if ( class_exists("global_posts_ordering") ) {
$global_posts_ordering = new global_posts_ordering(array("product"));
}
function image_src($img_tag)
{
preg_match("/src=\"(.*?)\"/i", $img_tag, $matches);
return $matches[1];
}
function short_text($text, $len=200, $puncte = ""){
$text = strip_tags($text);
if( (mb_strlen($text) > $len) ) {
$whitespaceposition = mb_strpos($text," ",$len)-1;
if( $whitespaceposition > 0 ) {
$chars = count_chars(mb_substr($text, 0, ($whitespaceposition+1)), 1);
if (isset($chars[ord('<')]) && $chars[ord('<')] > (isset($chars[ord('>')]) ? $chars[ord('>')] : 0))
$whitespaceposition = mb_strpos($text,">",$whitespaceposition)-1;
$text = mb_substr($text, 0, ($whitespaceposition+1));
}
// close unclosed html tags
if( preg_match_all("|<([a-zA-Z]+)|",$text,$aBuffer) ) {
if( !empty($aBuffer[1]) ) {
preg_match_all("|</([a-zA-Z]+)>|",$text,$aBuffer2);
if( count($aBuffer[1]) != count($aBuffer2[1]) ) {
foreach( $aBuffer[1] as $index => $tag ) {
if( empty($aBuffer2[1][$index]) || $aBuffer2[1][$index] != $tag)
$text .= '</'.$tag.'>';
}
}
}
}
}
return $text.$puncte;
}
/*
returneaza data in format:
- pt postare de azi 'azi la {ora}'
- pt anul asta, dar nu azi '{ziua} {luna} la {ora}
- pt alt an '{ziua} {luna} {anul} la {ora}
*/
function afiseaza_data($data=false)
{
if (!$data) return false;
// verifica daca este data in format corect
if (($data_timestamp = strtotime($data)) === false) {
// daca nu este corecta si nu am ce face cu ea returnez valoarea inapoi
return $data;
}
else {
//@setlocale(LC_TIME, 'ro_RO');
/*if (date("Y")==date("Y",$data_timestamp)) {
// acelasi an
if (date('d')==date('d',$data_timestamp)) {
// aceeasi zi
return strftime('azi la %H:%M',$data_timestamp);
}
else
{
// zi diferite
return strftime('%d %b la %H:%M',$data_timestamp);
}
}
else {
// ani diferiti
return strftime('%d %b %Y la %H:%M',$data_timestamp);
}*/
return strftime("%b %d",$data_timestamp);
}
}
function afiseaza_data_cu_an($data=false)
{
if (!$data) return false;
// verifica daca este data in format corect
if (($data_timestamp = strtotime($data)) === false) {
// daca nu este corecta si nu am ce face cu ea returnez valoarea inapoi
return $data;
}
else {
//@setlocale(LC_TIME, 'ro_RO');
/*if (date("Y")==date("Y",$data_timestamp)) {
// acelasi an
if (date('d')==date('d',$data_timestamp)) {
// aceeasi zi
return strftime('azi la %H:%M',$data_timestamp);
}
else
{
// zi diferite
return strftime('%d %b la %H:%M',$data_timestamp);
}
}
else {
// ani diferiti
return strftime('%d %b %Y la %H:%M',$data_timestamp);
}*/
return strftime("%b %d, %Y",$data_timestamp);
}
}
function arrangeMenuIqon($menu, $selected_object_id = 0, $selected_object_type, $homeID) {
global $object_id, $object_id_child, $object_id_child_child;
$arranged_menu = array();
$mainLevel = array();
$secondLevel = array();
$thirdLevel = array();
foreach ($menu as $m)
if ($m->menu_item_parent == 0) {
$key = $m->ID;
$arranged_menu[$key] = new stdClass;
$arranged_menu[$key]->ID = $m->ID;
$arranged_menu[$key]->object_id = $m->object_id;
$arranged_menu[$key]->object_id_en = function_exists('icl_object_id') ? icl_object_id($m->object_id, $m->object, true, 'en') : $m->object_id;
$arranged_menu[$key]->parrent = 0;
$arranged_menu[$key]->title = $m->title;
$arranged_menu[$key]->attr_title = $m->attr_title;
$arranged_menu[$key]->object = $m->object;
if (empty($arranged_menu[$key]->attr_title)) $arranged_menu[$key]->attr_title = $arranged_menu[$key]->title;
$arranged_menu[$key]->url = $m->url;
$arranged_menu[$key]->has_childrens = false;
$arranged_menu[$key]->selected = false;
if ($selected_object_type == 'home') {
if ($selected_object_id == $arranged_menu[$key]->object_id_en && $m->object == 'page')
$arranged_menu[$key]->selected = true;
$object_id = $key;
}
elseif ($selected_object_type == $m->object && $selected_object_id == $m->object_id) {
$arranged_menu[$key]->selected = true;
$object_id = $key;
}
$mainLevel[] = $m->ID;
}
elseif (in_array($m->menu_item_parent, $mainLevel)) {
$key_parent = $m->menu_item_parent;
$arranged_menu[$key_parent]->has_childrens = true;
$key_child = $m->ID;
$objectToModify = &$arranged_menu[$key_parent]->childrens;
$objectToModify[$key_child] = new stdClass;
$objectToModify[$key_child]->ID = $m->ID;
$objectToModify[$key_child]->object_id = $m->object_id;
$objectToModify[$key_child]->object_id_en = function_exists('icl_object_id') ? icl_object_id($m->object_id, $m->object, true, 'en') : $m->object_id;
$objectToModify[$key_child]->parrent = $key_parent;
$objectToModify[$key_child]->title = $m->title;
$objectToModify[$key_child]->attr_title = $m->attr_title;
$objectToModify[$key_child]->object = $m->object;
if (empty($objectToModify[$key_child]->attr_title)) $objectToModify[$key_child]->attr_title = $objectToModify[$key_child]->title;
$objectToModify[$key_child]->url = $m->url;
if (($arranged_menu[$key_parent]->object_id_en == 8) && sizeof($arranged_menu[$key_parent]->childrens) == 1) $arranged_menu[$key_parent]->url = $objectToModify[$key_child]->url;
$objectToModify[$key_child]->selected = false;
if ($selected_object_type == $m->object && $selected_object_id == $m->object_id) {
$objectToModify[$key_child]->selected = true;
$arranged_menu[$key_parent]->selected = true;
$object_id = $key_parent;
$object_id_child = $key_child;
}
$objectToModify[$key_child]->has_childrens = false;
$secondLevel[] = $m->ID;
if ($arranged_menu[$key_parent]->object_id_en == 8) {
wp_reset_query();
$args_pages = array('post_type' => 'page', 'order' => 'ASC', 'orderby' => 'menu_order', 'post_status' => 'publish', 'nopaging' => true, 'post_parent' => $objectToModify[$key_child]->object_id);
$pages = query_posts($args_pages);
//dv($pages);
if ($pages) {
$objectToModifyChild = &$objectToModify[$key_child]->childrens;
$objectToModify[$key_child]->has_childrens = true;
foreach ($pages as $p) {
$key_child_child = $p->ID;
$objectToModifyChild[$key_child_child] = new stdClass;
$objectToModifyChild[$key_child_child]->ID = $p->ID;
$objectToModifyChild[$key_child_child]->object_id = $p->ID;
$objectToModifyChild[$key_child_child]->object_id_en = function_exists('icl_object_id') ? icl_object_id($p->ID, $p->post_type, true, 'en') : $p->ID;
$objectToModifyChild[$key_child_child]->parrent = $key_child;
$objectToModifyChild[$key_child_child]->title = $p->post_title;
$objectToModifyChild[$key_child_child]->attr_title = $p->post_title;
$objectToModifyChild[$key_child_child]->object = $p->post_type;
$objectToModifyChild[$key_child_child]->url = get_permalink($p->ID);
$objectToModifyChild[$key_child_child]->selected = false;
if ($selected_object_type == $p->post_type && $selected_object_id == $p->ID) {
$objectToModifyChild[$key_child_child]->selected = true;
$objectToModify[$key_child]->selected = true;
$arranged_menu[$key_parent]->selected = true;
$object_id = $key_parent;
$object_id_child = $key_child;
$object_id_child_child = $key_child_child;
}
$objectToModifyChild[$key_child_child]->has_childrens = false;
}
}
wp_reset_query();
}
unset($objectToModify);
}
return $arranged_menu;
}
function arrangeMenu($menu, $selected_object_id = 0, $selected_object_type, $homeID) {
global $object_id, $object_id_child, $object_id_child_child;
$arranged_menu = array();
// get level 1 menus
foreach ($menu as $m)
if ($m->menu_item_parent == 0) {
$i = $m->ID;
$arranged_menu[$i] = new stdClass;
$arranged_menu[$i]->ID = $m->ID;
$arranged_menu[$i]->object_id = $m->object_id;
$arranged_menu[$i]->title = $m->title;
$arranged_menu[$i]->attr_title = $m->attr_title;
if (empty($arranged_menu[$i]->attr_title)) $arranged_menu[$i]->attr_title = $arranged_menu[$i]->title;
$arranged_menu[$i]->parrent = 0;
$arranged_menu[$i]->url = $m->url;
$arranged_menu[$i]->selected = false;
if ($selected_object_id == $m->object_id) {
$object_id = $i;
$arranged_menu[$i]->selected = true;
}
$arranged_menu[$i]->has_childrens = false;
}
if ($selected_object_type == 'home') $arranged_menu[$homeID]->selected = true;
return $arranged_menu;
}
function dv($var, $var_type = '') {
dump_var($var, $var_type);
}
function dump_var($var, $var_type = '') {
$ip=$_SERVER['REMOTE_ADDR'];
$local=false;
//if(preg_match("/192\.168\.([0-9]+)\.([0-9]+)/", $ip))$local=true;
//if(preg_match("/10\.([0-9]+)\.([0-9]+)\.([0-9]+)/", $ip))$local=true;
if($ip == "89.36.30.26") $local=true;
$local=true;
$rand = rand(0,9999);
echo "<div id='dv_".$rand."' style='position:absolute; z-index:10000; top:0; left:0;' onclick='document.getElementById(\"dv_".$rand."\").style.display=\"none\";'>";
if($local==true) {
print_var($var, $var_type);
}
echo "</div>";
}
function print_var(&$var, $var_type, $return=false)
{
global $html;
$html="<style>
.printvar {
background-color: #fdf8db;
border: 1px dashed #000;
padding:10px;
width: 90%;
word-wrap: break-word;
margin-left:auto;
margin-right:auto;
}
.printvar *{
color:#000;
font-size:12px;
font-family:Courier New;
align:left;
}
.printvar .var {
color: #0066CC;
}
.printvar .string {
color: #DD0000;
}
.printvar .numeric {
color: #0000BB;
}
.printvar .object {
color: #0080FF;
}
.printvar .button {
width:10px;
height:10px;
cursor:pointer;
}
</style>
<script>
function showHidePrintVar(id) {
elem = document.getElementById(id);
img = document.getElementById('img'+id);
if(elem.style.display=='none') {
elem.style.display='block';
} else {
elem.style.display='none';
}
}
</script>
<div class='printvar'>";
if(!isset($var))$var="%NULL%";
$old = $var;
$var = '0unique'.rand().'value';
$var_name = array_search($var, $GLOBALS, true);
$var=$old;
if($var_name) {
print_content($var, "$".$var_name, 1, "$".$var_name);
} else {
print_content($var, $var_type, 1, $var_type);
}
$html.="</div>";
if($return)return $html;
else echo $html;
}
function print_content($var, $var_name, $level, $parent) {
if(!isset($var))$var="%NULL%";
global $html;
for($i=0;$i<$level;$i++)$html.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
if(strpos($var_name, "$")===0) {
$html.="<span class='var'>$var_name</span> = ";
} elseif(strpos($parent, "->$var_name")==strlen($parent)-strlen($var_name)-2) {
$html.="-><span title=\"$parent\" class='object'>$var_name</span> = ";
} else {
$html.="[";
if(is_numeric($var_name)) {
$html.="<span title=\"$parent\" onclick=\"prompt('Path:','".addslashes($parent)."');\" class='numeric'>$var_name</span>";
} else {
$html.="<span title=\"$parent\" onclick=\"prompt('Path:','".addslashes($parent)."');\" class='string'>\"$var_name\"</span>";
}
$html.="] = ";
}
if(is_array($var)) {
$id=base64_encode(microtime());
$html.=" Array <span onclick=\"showHidePrintVar('$id');\" class='button'></span> {<br/>";
$html.="<div id='$id'>";
foreach ($var as $k=>$v) {
print_content($v, $k, $level+1, $parent."['$k']");
}
$html.="</div>";
for($i=0;$i<$level;$i++)$html.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
$html.=" }<br/>";
} elseif(is_object($var)) {
$id=base64_encode(microtime());
$html.=" Object <span onclick=\"showHidePrintVar('$id');\" class='button'><img id='img$id' src='".IMGURL."close.png' width='10px' height='10px' /></span> {<br/>";
$html.="<div id='$id'>";
foreach ($var as $k=>$v) {
print_content($v, $k, $level+1, $parent."->$k");
}
$html.="</div>";
for($i=0;$i<$level;$i++)$html.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
$html.=" }<br/>";
} else {
if (is_string($var)) {
$var=htmlentities($var, ENT_QUOTES, "UTF-8");
}
if(is_numeric($var)) {
$html.="<span class='numeric'>$var</span>;<br/>";
} elseif($var=="%NULL%") {
$html.="<span class='numeric'>NULL</span>;<br/>";
} else {
$html.="<span class='string'>\"$var\"</span>;<br/>";
}
}
}
function fileVersion($filename) {
//check if the file exists
if (file_exists($filename)) {
// return the time the file was last modified
echo filemtime($filename);
} else {
// let them know the file wasn't found
echo 'FileNotFound';
}
}
// IQON legacy live hardening, 2026-05-20.
function iqon_legacy_security_headers() {
if (headers_sent()) return;
header("X-Content-Type-Options: nosniff");
header("X-Frame-Options: SAMEORIGIN");
header("Referrer-Policy: strict-origin-when-cross-origin");
header("Permissions-Policy: camera=(), microphone=(), geolocation=()");
}
add_action("send_headers", "iqon_legacy_security_headers", 100);
add_filter("xmlrpc_enabled", "__return_false");
function iqon_legacy_restrict_rest_users($endpoints) {
if (isset($endpoints["/wp/v2/users"])) unset($endpoints["/wp/v2/users"]);
if (isset($endpoints["/wp/v2/users/(?P<id>[\\d]+)"])) unset($endpoints["/wp/v2/users/(?P<id>[\\d]+)"]);
return $endpoints;
}
add_filter("rest_endpoints", "iqon_legacy_restrict_rest_users", 20);
function iqon_legacy_site_name($name = "") {
return "IQON";
}
add_filter("wpseo_opengraph_site_name", "iqon_legacy_site_name", 20);
function iqon_legacy_title($title) {
if (function_exists("is_front_page") && is_front_page()) return "IQON | IT Strategy and Transformation Consulting";
return $title;
}
add_filter("wpseo_title", "iqon_legacy_title", 20);
add_filter("wpseo_opengraph_title", "iqon_legacy_title", 20);
function iqon_legacy_metadesc($description) {
if (function_exists("is_front_page") && is_front_page()) return "IQON helps organizations align IT strategy, transformation programs, and governance with measurable business outcomes.";
return $description;
}
add_filter("wpseo_metadesc", "iqon_legacy_metadesc", 20);
add_filter("wpseo_opengraph_desc", "iqon_legacy_metadesc", 20);
function iqon_legacy_https_url($value) {
if (!is_string($value)) return $value;
return str_replace(
array("http://www.iqon.com", "http://iqon.com", "http://maps.google.com", "http://maps.googleapis.com", "http:\\/\\/www.iqon.com", "http:\\/\\/iqon.com", "http:\\/\\/maps.google.com", "http:\\/\\/maps.googleapis.com", "\"name\":\"- IQON\"", "property=\"og:title\" content=\"Hows business?\"", "\"name\":\"Hows business?\""),
array("https://www.iqon.com", "https://iqon.com", "https://maps.google.com", "https://maps.googleapis.com", "https:\\/\\/www.iqon.com", "https:\\/\\/iqon.com", "https:\\/\\/maps.google.com", "https:\\/\\/maps.googleapis.com", "\"name\":\"IQON\"", "property=\"og:title\" content=\"IQON | IT Strategy and Transformation Consulting\"", "\"name\":\"IQON | IT Strategy and Transformation Consulting\""),
$value
);
}
add_filter("wpseo_opengraph_image", "iqon_legacy_https_url", 20);
function iqon_legacy_rewrite_recursive_urls($data) {
if (is_string($data)) return iqon_legacy_https_url($data);
if (is_array($data)) {
foreach ($data as $key => $value) $data[$key] = iqon_legacy_rewrite_recursive_urls($value);
}
return $data;
}
add_filter("wpseo_json_ld_output", "iqon_legacy_rewrite_recursive_urls", 20);
function iqon_legacy_output_buffer_start() {
if (is_admin()) return;
ob_start("iqon_legacy_https_url");
}
add_action("template_redirect", "iqon_legacy_output_buffer_start", 0);
?>