تعریف class برای diePage

پرسیده شده
فعالیت 1477 روز پیش
دیده شده 1162 بار
0

سلام

اگه بخوایم برای تابع diePage درون فایل style.css کلاس تعریف کنیم، چیکار باید کرد؟

فایل پیوست

محمدرضا رحیمی
محمدرضا رحیمی

27 فروردین 99

2
حذف شده

راه های متفاوتی واسه اینکار هست و هر چقدر مباحث جلوتر بره و مخصوصا توو شی گرایی که برسیم، دستمون بازتر هست واسه تولید و مدیریت چنین پیج هایی.

یک راه اینه که پیج tpl-index رو در قسمتهای مجزا تولید کنید تا بتونید برای diePage هم که از اسمش پیداس خودش میتونه یک پیج مدیریت خطا باشه، header و body و footer تولید کنید.

اما ایده ای که برای این قسمت من معرفی میکنم اینه که داخل فایل helpers.php یک تابع با اسم registerCssFile بسازید: (custom کردن ایده با خودتون)

function registerCssFile($files)
{
	if(!empty($files))
	{
		foreach ($files as $file)
			echo '<link rel="stylesheet" type="text/css" href="'. $file .'" >' . PHP_EOL;
	}
}

میتونی داخل فایل config.php هم فایل هارو تعریف کنی. برای مثال:

$cssFiles = [
	'http://mysite.com/assets/css/style1.css',
	'http://mysite.com/assets/css/style2.css',
	'http://mysite.com/assets/css/style3.css',
	'http://mysite.com/assets/css/style4.css',
];

و برای استفاده میتونید داخل tpl-index بجای نوشتن دستی فایل ها، بصورت داینامیک، فایل های css رو مدیریت کنید و به پیج اضافه کنید:

<head>
	<title></title>
	<?php registerCssFile($cssFiles); ?>
</head>

 

و تابع diePage هم مثلا به این شکل:

function diePage($msg) 
{
    registerCssFile(['http://mysite.com/assets/css/error.css']);
    die("<div class='err'>$msg</div>");
}

یا به این شکل:

function diePage($msg, $cssFiles = null) 
{
    registerCssFile($cssFiles);

    die("<div class='err'>$msg</div>");
}

 

فایل پیوست

محسن موحد

توسط

محسن موحد

27 فروردین 99

0
حذف شده

سلام.

تفاوتی با حالت عادی نداره، کافیه اتربیوت کلاس رو اضافه کنید:

echo '<div class="class-name">' . $msg . '</div>';

 

فایل پیوست

محسن موحد

توسط

محسن موحد

27 فروردین 99

0
حذف شده

نه!

بذارید سوالمو واضح تر بپرسم:

 من داخل فایل helpers.php برای تابع diePage کلاس تعریف کردم و استایل هامو به فایل css پروژه (style.css) اضافه کردم، الان برای اینکه استایل ها درون صفحه index.php نمایش داده بشه لازمه که اول tpl-index بارگذاری بشه بعد init یعنی:

<?php

include "tpl/tpl-index.php";
include "bootstrap/init.php";

اول باید قالب که شامل فایل style.css هستش بارگذاری بشه بعد فایل helpers.php که درون init است اون تابع رو با استایلش نشون بده.

که کار بالا اشتباه هستش و مشکلات دیگه ای درست میکنه.

چطور باید این مشکل رو حل کرد؟

فایل پیوست

محمدرضا رحیمی

توسط

محمدرضا رحیمی

27 فروردین 99

حذف شده
فایل پروژتونو اینجا بگذارید تا ساختار فایل هارو ببینم
محسن موحد

27 فروردین 99

0
حذف شده

بجای یک فایل tpl-index.php میتونید فایل هارو در چند فایل بشکنید:

tpl-header.php

tpl-body.php

tpl-footer.php

فایل پیوست

محسن موحد

توسط

محسن موحد

27 فروردین 99

2
حذف شده

فایل init

<?php

include "config.php";
include "constants.php";
include "libs/helpers.php";

/** Database Connection */ 
try {
    $pdo = new PDO("mysql: host=$db_config->host; dbname=$db_config->db; charset=UTF8mb4", $db_config->user, $db_config->pass);
} catch (PDOException $e) {
    diePage("Connection Failed: " . $e->getMessage());
}

include "libs/lib-Auth.php";
include "libs/lib-Tasks.php";


فایل helpers

<?php 

/** Show messages and die */
function diePage($msg) 
{
    die("<div class='err'>$msg</div>");
}

فایل index

<?php

include "bootstrap/init.php";
include "tpl/tpl-index.php";


خروجی هم که بدون استایل هستش.

فایل پیوست

محمدرضا رحیمی

توسط

محمدرضا رحیمی

27 فروردین 99