🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۵ شارود آشوری
تعریف class برای diePage
استاد ماندیس بحرینی حل شده توسط استاد ماندیس بحرینی

سلام

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

سلام.

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

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

 

استاد ماندیس بحرینی ۲۷ فروردین ۱۳۹۹، ۱۹:۴۶

نه!

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

 من داخل فایل 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 است اون تابع رو با استایلش نشون بده.

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

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

شارود آشوری ۲۷ فروردین ۱۳۹۹، ۲۰:۳۵

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

tpl-header.php

tpl-body.php

tpl-footer.php

استاد ماندیس بحرینی ۲۷ فروردین ۱۳۹۹، ۲۰:۵۰

فایل 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";

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

شارود آشوری ۲۷ فروردین ۱۳۹۹، ۲۰:۵۹

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

یک راه اینه که پیج 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>");
}

 

بهترین پاسخ
استاد ماندیس بحرینی ۲۷ فروردین ۱۳۹۹، ۲۱:۵۰