تحديث لملف اصلاح الكليجا

لدعم سكربت التحميل كليجا .. kleeja
أضف رد جديد
1 لغة 0 العصر 1
عضو جديد
مشاركات: 14
اشترك في: 21 ديسمبر 2009, 23:30
اتصال:

تحديث لملف اصلاح الكليجا

مشاركة بواسطة 1 لغة 0 العصر 1 »

السلام عليكم ورحمة الله وبركاته

لقد قمت باضافة عملية جديدة في ملف الاصلاح بكليجا.

العملية هي عمل صيانة شاملة

سوف اضعها هنا بعد الموافقة من مسؤول كليجا

بالنسبة لتجربتها فلقد جربتها في موقعي وموقع اخي ابوعبدالله

انا في الانتظار
Tar3Q
ابو زياد
مشاركات: 1178
اشترك في: 25 فبراير 2009, 01:09

رد: تحديث لملف اصلاح الكليجا

مشاركة بواسطة Tar3Q »

عليكم السلام ورحمة الله

شكراً لك ولا يمنع مطوري كليجا اي اضافة او تطوير

وبالتالي ضع الملف هنا وانتظر رأي مهندس كليجا

اليوم كان عنده اختبار وهالاسبوع كله اختبارات

لكن ان شاء الله يسمح له وقته بالدخول ويعطيك رأيه في الكود المضاف
1 لغة 0 العصر 1
عضو جديد
مشاركات: 14
اشترك في: 21 ديسمبر 2009, 23:30
اتصال:

رد: تحديث لملف اصلاح الكليجا

مشاركة بواسطة 1 لغة 0 العصر 1 »

شكراً لك عزيزي طارق على كلامك الحلو

اسئل الله ان يجعل النجاح حليفهم جميعاً... اللهم آمين

وهذا هو كود الملف كاملاً

كود: تحديد الكل

<?php
/*
*	fix.php
*	This file try to fix some common issues with Kleeja ! 
*	done in 12/6/2010 at 05:24؛M
*	by Kleeja team ( kleeja.com/team ) Updated by Abu1Omar1
*/

#Are we in kleeja root folder ? 
if(!file_exists('includes/common.php'))
{
	kleeja_fix_info('انتبه !', 'هذا الملف يجب ان يتم وضعه في مجلد كليجا الاساسي !.');
}

//We are in Kleeja .. yaahoooo
define ('IN_INDEX' , true);
define ('IN_ADMIN' , true);
$adm_time = $adm_path = '';
include ('includes/common.php');


$step = isset($_GET['step']) ? intval($_GET['step']) : 1;

switch($step):
default:
case 1:

	//cookies 
	at_begin();
	echo '<div style="text-align:center;font-size:70px;color:orange">1</div><br /><br /><br />';
	echo '<div style="font-size:16px;color:#666">ضبط الكوكيز /</div><br />';
	echo '<div style="font-size:11px;color:#666">اغلب مشاكل الدخول ان لم تكن كلها تكمن في عدم ضبط الكوكيز بشكل جيد !.<br /><br />';


	if(isset($_GET['fix_it']))
	{
		$cookie_data = get_cookies_settings();

		$SQL->query("UPDATE `{$dbprefix}config` SET `value` = '" . $cookie_data['cookie_domain'] . "' WHERE `name` = 'cookie_domain'");
		$SQL->query("UPDATE `{$dbprefix}config` SET `value` = '" . ($cookie_data['cookie_secure'] ? '1' : '0') . "' WHERE `name` = 'cookie_secure'");
		$SQL->query("UPDATE `{$dbprefix}config` SET `value` = '" . $cookie_data['cookie_name'] . "' WHERE `name` = 'cookie_name'");
		$SQL->query("UPDATE `{$dbprefix}config` SET `value` = '" . $cookie_data['cookie_path'] . "' WHERE `name` = 'cookie_path'");
		delete_cache('data_config');
		
		echo '<div style="font-size:11px;color:#blue">|| تم محاولة اصلاح الكوكيز .. هذا لا يعني ان المشكلة قد تزول .. لذا جرب باقي خطوات الاصلاح ! ||</div><br />';
	}
	else
	{
		echo 'البيانات الحالية / <br />';
		echo '<div style="direction:ltr">';
		echo 'cookie_name: ' . $config['cookie_name'] . '<br />';
		echo 'cookie_path: ' . $config['cookie_path'] . '<br />';
		echo 'cookie_domain: ' . $config['cookie_domain'] . '<br />';
		echo 'cookie_secure: ' . $config['cookie_secure'] . '<br />';
		echo '</div></div><br /><br />';
	}
	
	echo '<div style="text-align:center;font-size:12px;color:#green;cursor:pointer" onclick="location.href=\'?step=1&fix_it=1\'">[ إصلاح الكوكيز ]</div><br />';

	at_end();
	
break;


case 2:

	//styles
	at_begin();
	echo '<div style="text-align:center;font-size:70px;color:orange">2</div><br /><br /><br />';
	echo '<div style="font-size:16px;color:#666">ضبط الستايل /</div><br />';
	echo '<div style="font-size:11px;color:#666">مشاكل الستايل اما بسبب عدم توافق الستايل مع النسخه الحالية او بسبب اعتماد الستايل على ستايل غير موجود او بسبب الكاش القديم!.<br /><br />';

	$current_styles = scandir_4('styles');

	if(isset($_GET['fix_it']))
	{
	
		if($_GET['fix_it'] == 2)
		{
			$SQL->query("UPDATE `{$dbprefix}config` SET `value` = 'default' WHERE `name` = 'style'");
			echo '<div style="font-size:11px;color:#blue">|| تم تحديد الستايل default كستايل افتراضي ||</div><br />';
		}
		//current style is not exists ! 
		elseif(!in_array($config['style'], $current_styles))
		{
			$r = false;
			foreach($current_styles as $i)
			{
				$r = kleeja_style_info($i);
				if(empty($r['depend_on']))
				{
					$SQL->query("UPDATE `{$dbprefix}config` SET `value` = '$i' WHERE `name` = 'style'");
					$SQL->query("UPDATE `{$dbprefix}config` SET `value` = '' WHERE `name` = 'style_depend_on'");
					$r = true;
					echo '<div style="font-size:11px;color:#blue">|| الستايل المحدد للمركز حاليا غير موجود , لذا تم وضع الستايل ' . $i . ' بدلاً عنه ||</div><br />';
					
					break;
				}
				
				unset($r);
			}
			
			if(!$r)
				echo '<div style="font-size:11px;color:#red">|| قم برفع الستايل  default لكليجا لكي يستطيع المعالج اتمام عمله بنجاح ! ||</div><br />';
			
		}
		//exists but !
		else
		{
			$rr = kleeja_style_info($config['style']);
			
			if(!empty($rr['depend_on']) && !in_array($rr['depend_on'], $current_styles))
			{
				$r = false;
				foreach($current_styles as $i)
				{
					$r = kleeja_style_info($i);
					if(empty($r['depend_on']))
					{
						$SQL->query("UPDATE `{$dbprefix}config` SET `value` = '$i' WHERE `name` = 'style'");
						$SQL->query("UPDATE `{$dbprefix}config` SET `value` = '' WHERE `name` = 'style_depend_on'");
						$r = true;
						echo '<div style="font-size:11px;color:#blue">||الستايل المحدد  للمركز كان يعتمد على ستايل اخر غير موجود  , لذا تم وضع الستايل ' . $i . ' بدلاً عنه ||</div><br />';
						
						break;
					}
					
					unset($r);
				}
				
				if(!$r)
					echo '<div style="font-size:11px;color:#red">|| قم برفع الستايل  default لكليجا لكي يستطيع المعالج اتمام عمله بنجاح ! ||</div><br />';
			}
			else
			{
				echo '<div style="font-size:11px;color:#blue">|| اممممم , لم اجد اي مشاكل بالستايل ! ||</div><br />';
			}
		
		}
		
		delete_cache(null, true);
		
		
	}
	else
	{
		echo 'الوضع الحالي  / <br />';
		echo '<div style="direction:rtl">';
		echo 'الستايل الحالي : ' . $config['style'] . '<br />';
		echo 'يعتمد على الستايل : ' . (trim($config['style_depend_on']) == '' ? 'لا يعتمد على اي ستايل' : $config['style_depend_on']) . '<br />';
		echo 'الستايلات المتوفره هي : ' . implode(' و ', $current_styles) . '<br />';

		echo '</div></div><br /><br />';
	}
	
	echo '<div style="text-align:center;font-size:12px;color:#green;cursor:pointer" onclick="location.href=\'?step=2&fix_it=1\'">[ إصلاح الستايل ]</div><br />';
	echo '<div style="text-align:center;font-size:12px;color:#green;cursor:pointer" onclick="location.href=\'?step=2&fix_it=2\'">[ تعيين default كستايل افتراضي ]</div><br />';

	at_end();
		
break;

case 3:
	
	//admin accouts !
	at_begin();
	echo '<div style="text-align:center;font-size:70px;color:orange">3</div><br /><br /><br />';
	echo '<div style="font-size:16px;color:#666">حساب المدير/</div><br />';
	echo '<div style="font-size:11px;color:#666">اذا كنت قد نسيت كلمة المرور للمدير او ان المدير تم حذفه بالخطأ فيمكنك انشاء عضوية مدير وحذفها لاحقاً.<br /><br />';


	if(isset($_GET['fix_it']))
	{
		$name = (string) substr(kleeja_base64_encode(pack("H*", sha1(mt_rand()))), 0, 7);
		$user_salt		= (string) substr(kleeja_base64_encode(pack("H*", sha1(mt_rand()))), 0, 7);
		$rpass			= substr(kleeja_base64_encode(pack("H*", sha1(mt_rand()))), 0, 4);
		$pass			= (string) $usrcp->kleeja_hash_password($rpass . $user_salt);
		$mail			= 'admin@example.com';
	
		$session_id		= (string) session_id();
		$clean_name		= (string) $usrcp->cleanusername($name);
							
		$insert_query	= array(
									'INSERT'	=> 'name ,password, password_salt ,mail, session_id, clean_name, admin',
									'INTO'		=> "{$dbprefix}users",
									'VALUES'	=> "'$name', '$pass', '$user_salt', '$mail', '$session_id', '$clean_name', 1"
								);
		if ($SQL->build($insert_query))
		{
			echo '<div style="font-size:11px;color:#blue">|| تم انشاء عضوية مدير جديده عشوائيه ||</div><br />';
			echo '<div style="font-size:11px;color:#blue">اسم المستخدم : <b>' .$name . '</b><br /> كلمة المرور : <b>' .$rpass . '</div><br />';
			
		}
		else
		{
			echo '<div style="font-size:11px;color:#red">|| هناك مشكلة باضافه عضوية جديده, حاول مجدداً ||</div><br />';
		}
		
	}
	
	echo '<div style="text-align:center;font-size:12px;color:#green;cursor:pointer" onclick="location.href=\'?step=3&fix_it=1\'">[ إنشاء عضوية مدير عشوائيه ]</div><br />';

	at_end();

	
break;


case 4:

	at_begin();
	echo '<div style="text-align:center;font-size:70px;color:orange">4</div><br /><br /><br />';
	echo '<div style="font-size:16px;color:#666">ضبط نظام العضويات /</div><br />';
	echo '<div style="font-size:11px;color:#666">قد لاينجح الربط مع البعض , والبعض الاخر يقوم بالربط مع اي سكربت اخر بدون معرفه مسبقه بماهية الربط .<br /><br />';


	if(isset($_GET['fix_it']) && (int) $_GET['fix_it'] == 1)
	{
		$SQL->query("UPDATE `{$dbprefix}config` SET `value` = '1' WHERE `name` = 'user_system'");
		delete_cache('data_config');
		
		echo '<div style="font-size:11px;color:#blue">|| تم ارجاع نظام العضويات لنظام العضويات العادي , تستطيع الدخول بعضويتك التي انشأتها عند تثبيت كليجا الآن  ! ||</div><br />';
	}
	else if(isset($_GET['fix_it']) && (int) $_GET['fix_it'] == 2)
	{
		//$SQL->query("UPDATE `{$dbprefix}config` SET `value` = '1' WHERE `name` = 'user_system'");
		//delete_cache('data_config');
		
		echo '<div style="font-size:11px;color:#blue">|| هذه الخاصية غير مدعومه حالياً .. سنقوم بتضمينها بنسخه جديده باذن الله ||</div><br />';
	}
	else
	{
		echo 'البيانات الحالية / <br />';
		echo '<div style="direction:rtl">';
		echo 'نظام العضويات : ' . (in_array(trim($config['user_system']), array('', '1')) ? 'العادي / لم يتم الربط باي سكربت' : $config['user_system'])  . '<br />';

		echo '</div></div><br /><br />';
	}
	
	echo '<div style="text-align:center;font-size:12px;color:#green;cursor:pointer" onclick="location.href=\'?step=4&fix_it=1\'">[ إرجاع النظام للعادي ]</div><br />';
	echo '<del><div style="text-align:center;font-size:12px;color:#green;cursor:pointer" onclick="location.href=\'?step=4&fix_it=2\'">[ فحص ملف الكونفق لمعرفة مشكلة الربط ]</div></del><br />';

	at_end();

break;

case 5:

	//cookies 
	at_begin();
	echo '<div style="text-align:center;font-size:70px;color:orange">5</div><br /><br /><br />';
	echo '<div style="font-size:16px;color:#666">ضبط الاضافات /</div><br />';
	echo '<div style="font-size:11px;color:#666">قد تقابلك مشكلة بعد تثبيت اضافه ما , او لو كنت مطور قد تقابلك هذه الامور كل لحظة .<br /><br />';
	echo '<div style="font-size:11px;color:#blue">|| هذه الخاصية غير مدعومه حالياً .. سنقوم بتضمينها بنسخه جديده باذن الله ||</div><br />';
	echo '<div style="font-size:11px;color:#blue">حتى ذلك الوقت يمكنك وضع الكود التالي في ملف config.php عندما تقابلك اي مشكلة باي اضافه وحذفها بعد اضافة الكود ومن ثم مسح الكود </div><br />';
		
	echo '<div style="direction:ltr">define(\'STOP_HOOKS\', true);</div>';

	at_end();

break;

case 6:

    //full maintenance
    at_begin();
    
	echo '<div style="text-align:center;font-size:70px;color:orange">6</div><br /><br /><br />';
	echo '<div style="font-size:16px;color:#666">صيانة شاملة/</div><br />';
	echo '<div style="font-size:11px;color:#666">قد تقابلك مشكلة بعد تثبيت اضافه ما, او انك قد ربطت المركز باسكربت اخر,  او لو كنت مطور قد تقابلك هذه الامور كل لحظة .
<br /><br />';

    //path of admin extensions
    $path_adm	= 'includes/adm';

	if(isset($_GET['fix_it']) == 6)
	{
        if (file_exists($path_adm . '/r_repair.php'))
        {
        	($hook = kleeja_run_hook("require_admin_page_begin_{r_repair}")) ? eval($hook) : null; //run hook 
        	include_once ($path_adm . '/r_repair.php');
        	($hook = kleeja_run_hook("require_admin_page_end_{r_repair}")) ? eval($hook) : null; //run hook
        }
        else
        {
        	big_error('In Loading !', 'Error while loading : r_repair');
        }
	}
    if($_GET['fix_it'] == 1){
        echo '<div style="font-size:11px;color:#blue">|| تمت عملية الصيانة الشاملة بنجاح ||</div><br />';
    }else{
        echo '<div style="font-size:11px;color:#blue">|| لم تتم عملية الصيانة الشاملة بنجاح ||</div><br />';
    }
	echo '<div style="text-align:center;font-size:12px;color:#green;cursor:pointer" onclick="location.href=\'?step=6&fix_it=1\'">[ صيانة شاملة ]</div><br />';

    at_end();
endswitch;



/*
* usefull functions
*/
function kleeja_fix_info($title, $text, $exit = true, $type = 'info')
{
	echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">' . "\n" . '<head>' . "\n" . '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' . "\n";
	echo '<title>' . $title . '</title>' . "\n" . '<style type="text/css">' . "\n\t" . '* { margin: 0; padding: 0; }' . "\n\t";
	echo 'body { background: #fff;color: #444;font-family:tahoma, verdana, arial, sans-serif;font-size: 11px;font-weight: bold;margin: 0 auto;padding: 50px;width: 767px; direction:rtl;}' . "\n\t";
	echo '.info  {color: #333;background:#fff9d7;border: 1px solid #e2c822;}.error {color: #333;background:#ffebe8;border: 1px solid #dd3c10;}' . "\n\t";
	echo '.info, .error {padding: 10px;font-family:"lucida grande", tahoma, verdana, arial, sans-serif;font-size: 12px;font-weight: bold;}' . "\n" . '</style>' . "\n" . '</head>' . "\n" . '<body>' . "\n\t";
	echo '<div class="' . $type . '">' . "\n\t\t<strong>" . $title . '</strong><br /><br />' . "\n\t\t" . $text . "\n\t" .  '</div>' . "\n" . '</body>'. "\n" . '</html>';
	if($exit)
		exit;
}
function kleeja_fix_error($title, $text, $exit = true, $type = 'error')
{
	return kleeja_fix_info($title, $text, $exit, $type);
}

function at_begin()
{
	echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">' . "\n" . '<head>' . "\n" . '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' . "\n";
	echo '<title>معالج اصلاح كليجا</title>' . "\n" . '<style type="text/css">' . "\n\t" . '* { margin: 0; padding: 0; }' . "\n\t";
	echo 'body { background: #fff;color: #444;font-family:tahoma, verdana, arial, sans-serif;font-size: 11px;font-weight: bold;margin: 0 auto;padding: 70px;width: 450px; direction:rtl;}' . "\n\t" . "\n";
	echo '.at_bottom { margin:0 auto; margin-top:80px; padding:5px; border-top:1px dotted #ccc}' . "\n\t" . "\n";
	echo '.it-is-kleeja { margin:0 auto; margin-top:10px; padding:5px; border:1px solid #ccc; color:#888;text-align:center; background-color:#EBEBEB}' . "\n\t" . "\n";
	echo '</style>' . "\n" . '</head>' . "\n" . '<body>' . "\n\t";
}

function at_end()
{
	echo "\n" . '
	<div class="at_bottom">
	<table style="width:100%">
		<tr>
			<td style="font-size:12px;text-align:center;cursor:pointer" onclick="location.href=\'?step=1\'">
				<span style="font-size:16px;color:orange;font-weight:bold">1</span><br />
				ضبط الكوكيز
			</td>
			<td style="font-size:12px;text-align:center;cursor:pointer" onclick="location.href=\'?step=2\'">
				<span style="font-size:16px;color:orange;font-weight:bold">2</span><br />
				ضبط الستايل
			</td>
			<td style="font-size:12px;text-align:center;cursor:pointer" onclick="location.href=\'?step=3\'">
				<span style="font-size:16px;color:orange;font-weight:bold">3</span><br />
				حساب المدير
			</td>
			<td style="font-size:12px;text-align:center;cursor:pointer" onclick="location.href=\'?step=4\'">
				<span style="font-size:16px;color:orange;font-weight:bold">4</span><br />
				ضبط نظام العضويات
			</td>
			<td style="font-size:12px;text-align:center;cursor:pointer" onclick="location.href=\'?step=5\'">
				<span style="font-size:16px;color:orange;font-weight:bold">5</span><br />
				ضبط الاضافات
			</td>
			<td style="font-size:12px;text-align:center;cursor:pointer" onclick="location.href=\'?step=6\'">
				<span style="font-size:16px;color:orange;font-weight:bold">6</span><br />
				صيانة شاملة
			</td>
		</tr>
	</table>
	</div>
	<div class="it-is-kleeja">
	معالج اصلاح مشاكل كليجا المتكرره
	</div>
	</body>'. "\n" . '</html>';
}

function scandir_4($dir)
{
	$dh  = opendir($dir);
	while (false !== ($filename = readdir($dh)))
	{
		if(is_dir(rtrim($dir, '/') . '/' . $filename . '/') && !in_array($filename, array('.svn', '..', '.')))
			$files[] = $filename;
	}
	closedir($dh);
	sort($files);
	return $files;
}


function get_cookies_settings()
{
	$server_port = !empty($_SERVER['SERVER_PORT']) ? (int) $_SERVER['SERVER_PORT'] : (int) @getenv('SERVER_PORT');
	$server_name = $server_name = (!empty($_SERVER['HTTP_HOST'])) ? strtolower($_SERVER['HTTP_HOST']) : ((!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : @getenv('SERVER_NAME'));
	
	// HTTP HOST can carry a port number...
	if (strpos($server_name, ':') !== false)
		$server_name = substr($server_name, 0, strpos($server_name, ':'));


	$cookie_secure	= isset($_SERVER['HTTPS'])  && $_SERVER['HTTPS'] == 'on' ? true : false;
	$cookie_name	= 'klj_' . strtolower(substr(str_replace('0', 'z', base_convert(md5(mt_rand()), 16, 35)), 0, 5));

	$name = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
	if (!$name)
		$name = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : @getenv('REQUEST_URI');

	$script_path = trim(dirname(str_replace(array('\\', '//'), '/', $name)));

	
	if ($script_path !== '/')
	{
		if (substr($script_path, -1) == '/')
			$script_path = substr($script_path, 0, -1);

		$script_path = str_replace(array('../', './'), '', $script_path);
		if ($script_path[0] != '/')
			$script_path = '/' . $script_path;
	}
	
	$cookie_domain = $server_name;
	if (strpos($cookie_domain, 'www.') === 0)
	{
		$cookie_domain = str_replace('www.', '.', $cookie_domain);
	}

	return array(
		'server_name'	=> $server_name,
		'cookie_secure'	=> $cookie_secure,
		'cookie_name'	=> $cookie_name,
		'cookie_domain'	=> $cookie_domain,
		'cookie_path'	=> $script_path,
	);
	
}
وانا في انتظار ارائكم
آخر تعديل بواسطة 1 لغة 0 العصر 1 في 13 يونيو 2010, 02:59، تم التعديل مرة واحدة.
saanina
عبدالرحمــــن
مشاركات: 3762
اشترك في: 30 أغسطس 2004, 13:54

رد: تحديث لملف اصلاح الكليجا

مشاركة بواسطة saanina »

شكراً
سيتم تحديث ملف الاصلاح بمميزات جديده لاحقاً وسأقرأ ماكتبته
بالمناسبة ماذا يفعل كود تحقق الفي بي في ملف الفكس الخاص بكليجا !
1 لغة 0 العصر 1
عضو جديد
مشاركات: 14
اشترك في: 21 ديسمبر 2009, 23:30
اتصال:

رد: تحديث لملف اصلاح الكليجا

مشاركة بواسطة 1 لغة 0 العصر 1 »

يالله... انا اسف نسيت ووضعته بالغلط ولقد مسحته الان

شكراً لك حبيبي عبد الرحمن
أضف رد جديد