دیتالایف انجین فارسی

تگ custom پیشرفته

تاریخ انتشار: 14 تیر 1389
ارسال کننده: szabeh
با سلام دوستان این دومین پست من تو دیتالایفه
دوستانی که از custom استفاده میکنند یک مشکل دارند.
مشکل تو موضوعات تو در تو هست. اگر تو تگ custom آی دی موضوع والد رو میگذاشتید مطالب زیر موضوعات رو نشون نمیداد. با این هک این مشکل حل میشه.

برای نصب مراحل زیر رو طی کنید:
1. فایل ضمیمه جهت دانلود این فایل، وارد سایت شوید. در صورتی که حساب کاربری ندارید، از طریق صفحه ثبت نام عضو شوید.
رو به هاستتون آپلود کنید.

2. تو فایل index.php قبل از کد:
if (strpos ( $tpl->copy_template, "{custom" ) !== false) {

کد زیر رو قرار دهید
if (strpos ( $tpl->copy_template, "{gamacat" ) !== false) {
    $tpl->copy_template = preg_replace ( "#\\{gamacat category=['\"](.+?)['\"] template=['\"](.+?)['\"] aviable=['\"](.+?)['\"] from=['\"](.+?)['\"] limit=['\"](.+?)['\"] cache=['\"](.+?)['\"]\\}#ies", "gamacat_print('\\1', '\\2', '\\3', '\\4', '\\5', '\\6', '{$dle_module}')", $tpl->copy_template );
}


3. تو فایل templates.class.php قبل از کد:

if (strpos ( $this->template, "[aviable=" ) !== false) {


این کد رو قرار دهید:

if (strpos ( $this->template, "{gamacat" ) !== false) {
    $this->template = preg_replace ( "#\\{gamacat category=['\"](.+?)['\"] template=['\"](.+?)['\"] aviable=['\"](.+?)['\"] from=['\"](.+?)['\"] limit=['\"](.+?)['\"] cache=['\"](.+?)['\"]\\}#ies", "gamacat_print('\\1', '\\2', '\\3', '\\4', '\\5', '\\6', '{$dle_module}')", $this->template );
}


4. مرحله پایانی تو فایل engine\modules\functions.php قبل از کد :
function custom_print($custom_category,


این کد رو قرار دهید:
function gamacat_print($custom_category, $custom_template, $aviable, $custom_from, $custom_limit, $custom_cache, $do) {
    global $db, $is_logged, $member_id, $xf_inited, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $smartphone_detected, $dle_module;
    
    $do = $do ? $do : "main";
    $aviable = explode( '|', $aviable );
    
    if( ! (in_array( $do, $aviable )) and ($aviable[0] != "global") ) return "";
    
    $custom_category = $db->safesql( str_replace( ',', '|', $custom_category ) );
    $custom_from = intval( $custom_from );
    $custom_limit = intval( $custom_limit );
    $thisdate = date( "Y-m-d H:i:s", (time() + $config['date_adjust'] * 60) );
    
    if( intval( $config['no_date'] ) ) $where_date = " AND date < '" . $thisdate . "'";
    else $where_date = "";
    
    $tpl = new dle_template( );
    $tpl->dir = TEMPLATE_DIR;
    
    if( $custom_cache == "yes" ) $config['allow_cache'] = "yes";
    else $config['allow_cache'] = false;
    if( $is_logged and ($user_group[$member_id['user_group']]['allow_edit'] and ! $user_group[$member_id['user_group']]['allow_all_edit']) ) $config['allow_cache'] = false;
    
    $content = dle_cache( "custom", "cat_" . $custom_category . "template_" . $custom_template . "from_" . $custom_from . "limit_" . $custom_limit, true );
    
    if( $content ) {
        return $content;
    } else {
        
        $allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );
        
        if( $user_group[$member_id['user_group']]['allow_short'] ) $stop_list = "";
        
        if( $cat_info[$custom_category]['news_sort'] != "" ) $news_sort = $cat_info[$custom_category]['news_sort']; else $news_sort = $config['news_sort'];
        if( $cat_info[$custom_category]['news_msort'] != "" ) $news_msort = $cat_info[$custom_category]['news_msort']; else $news_msort = $config['news_msort'];
        
        $custom_category = str_replace( "|", "','", $custom_category );
        $where_category = "category in (select id FROM " . PREFIX . "_category where parentid  IN ('" . $custom_category . "') )";
        $where_category .= " or category in  ('" . $custom_category . "') ";

        
        

        if ($config['allow_fixed']) $fixed = "fixed desc, ";
        else $fixed = "";
        
        $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post WHERE " . $where_category . " AND approve" . $where_date . " ORDER BY " . $fixed . $news_sort . " " . $news_msort . " LIMIT " . $custom_from . "," . $custom_limit;
        
        include (ENGINE_DIR . '/modules/show.gamacat.php');
        
        if( $config['files_allow'] == "yes" ) if( strpos( $tpl->result['content'], "[attachment=" ) !== false ) {
            $tpl->result['content'] = show_attach( $tpl->result['content'], $attachments );
        }
        
        create_cache( "custom", $tpl->result['content'], "cat_" . $custom_category . "template_" . $custom_template . "from_" . $custom_from . "limit_" . $custom_limit, true );
    
    }
    return $tpl->result['content'];
}

برای استفاده تو هر جایی از قالب که خواستید از این تگ استفاده کنید:

{gamacat category="38" template="test" aviable="global" from="0" limit="4" cache="no"}


هر مشکلی داشتید در میان بگذارید.
    19 نفر (19 کاربر و 0 میهمان) از این مطلب تشکر کرده اند.
    تشکر
    عضو سایت
    14 تیر 1389 - 17:31
    templates.class.php میشه بگید کجاست؟
    عضو سایت
    14 تیر 1389 - 17:39
    hichkas9,

    سلام اینجاست

    engine/classes

    موفق باشید
    عضو سایت
    14 تیر 1389 - 17:47
    cheshmak منونkavehch

    3. تو فایل templates.class.php قبل از کد:

    if (strpos ( $tpl->copy_template, "{ز" ) !== false) {


    این کد توی templates.class.php برای من نیست چرا؟
    عضو سایت
    14 تیر 1389 - 17:57
    hichkas9, دوستان دیگر

    دنبال این بگردید:
    if (strpos ( $this->template, "{custom" ) !== false) {


    من داشتم مطلب رو ویرایش میکردم که دوستان مدیر این مطلب رو منتشر کردند.
    مدیران عزیز این قسمت رو بی زحمت تصحیح کنید.
    عضو سایت
    14 تیر 1389 - 18:19
    szabeh,

    این کد هم نیست توی templates.class.php
    عضو سایت
    14 تیر 1389 - 18:39

    hichkas9,
    شما از کدام نسخه استفاده میکنی. این که تو همه نسخه ها هست.

    خوب این کد رو بگرد:
    if (strpos ( $this->template, "[aviable=" ) !== false) {
    عضو سایت
    14 تیر 1389 - 19:05
    8.5

    این یکی که گذاشتین هست.
    عضو سایت
    14 تیر 1389 - 19:13
    خوب بود
    عضو سایت
    15 تیر 1389 - 11:54
    دمت گرم .چیز خوبی بود
    عضو سایت
    15 تیر 1389 - 13:50
    belay بابا ترکوندید !!!

    --------------------
    عضو سایت
    05 شهریور 1389 - 15:34
    مطلب خوبی بود yes
    ممنون flower

    --------------------
    عضو سایت
    09 شهریور 1389 - 12:08
    ممنون خیلی عالی بود واقعا دیتالایف انجین سیستم خیلی جالبیه ! از تمام cms های که استفاده کردم فعلا بهترینه و دارم بیشتر با اون آشنا میشم امیدوارم که انجمن سایت و سایت همیشه پایدار بمونه همچنین از کلیه دوستانی که برای بهتر شدن این سیستم و آموزش برای فارسی زبانان فعالیت میکنن به نوبه خودم از طرف کلیه دوستان تشکر میکنم winked

    --------------------
    عضو سایت
    12 شهریور 1389 - 05:00
    یه نکته در ورژن 9 نیازی به مرحله 4 نیست he
    عضو سایت
    15 مهر 1389 - 10:18
    parker,
    چرا شایعه پراکنی می کنی جناب؟ من موندم چرا مدیران دیتالایف انجین که اینقدر روی نظرات حساس هستن این نظرو گراشتن همینجور بمونه

    آقا قسمت 4 مهمترین قسمته، شما این قسمتو ننویس ببین چی میشه حتی تو دیتالایف انجین 9

    ضمنا، این کد یه مشکلی داره که تگ کاستوم نداشت
    اگه شما واسه موضوعی دو یا چند بخش رو انتخاب کنین دیگه نشونش نمیده. اگه این مشکلشم حل بشه عالیه و اگه اون قسمتهایی که میاد عنوان و متن کوتاه رو محدود به تعداد کاراکتر های خاص می کنه هم بهش اضافه بشه، دیگه کامل کامل میشه

    ممنون
    عضو سایت
    22 آذر 1390 - 21:10
    متاسفانه این هک یک مشکل و یک کمبود داره

    کمبود:
    عدم پشتیبانی از ایجاد محدودیت در کاراکترهای عنوان و متن کوتاه

    مشکل:
    من از این تگ برای نمایش در صفحه ای غیر از صفحه اصلی (مثلا برای صفحه نمایش مطالب یک موضوع) استفاده میکنم و مشکلی که پیش میاد به این صورت هست که اگه مقدار limit ،در این تگ را روی 5 قرار دهم ، هر مطلب را 5 بار نمایش میدهد یعنی اگر در موضوع A ،ما 3 مطلب وجود داشته باشد 5*3=15 مطلب نمایش میدهد
    عضو سایت
    26 بهمن 1390 - 07:28
    از لینک زیر استفاده کردم وگذاشتم اما اتفاقی نیافتاد
    میشه بگید چطور باید بزارم؟
    مقداری از کد رو که میخوام اینجا قرار بگیره براتون میزارم farashahd.com

    <div class="mnwin hline-1">

    <div class="title">اخبار و اطلاعیه ها</div>

    <ul>

    <li>» <a href="fa/posts/70">سرور دوم شرکت یکضرب راه اندازی شد</a></li>

    <li>» <a href="fa/posts/60">تخفیف 20 درصدی ویژه نوروز برای خدمات هاستینگ</a></li>

    <li>» <a href="fa/posts/29">راه اندازی سرور جدید شرکت یکضرب</a></li>

    <li>» <a href="fa/posts/1">سایت جدید شرکت یکضرب راه اندازی شد</a></li>

    </ul>

    <div class="title">مقالات</div>

    <ul>

    <li>» <a href="fa/posts/34">آموزش ایجاد انعکاس توسط فوتوشاپ</a></li>

    </ul>

    </div>

    </div>
    <div class="bm"></div>

    </div> <!--center-->
    </div> <!--sub-windo-->
    </div>


    اگه توی سایت نگاه کنید من میخام اون قسمتی که لینکهای اطلاعیه و مقالات گذاشته شدند رو پاک کنم و بجاش اخبار و ومقالات بصورت تایپ شونده نمایش بزارم


    ممنون میشم کمکم کنید با تشکر
    جهت ارسال نظر، فرم زیر را تکمیل نمائید:
    نام:*
    ایمیل:*
    متن نظر:

     
    پررنگکج خط دارخط دار در وسط|سمت چپوسط سمت راست|قرار دادن شکلکانتخاب رنگ|پنهان کردن متنقراردادن نقل قولتبدیل نوشته ها به زبان روسیقراردادن Spoiler
    کد امنیتی: *