النتائج 1 إلى 13 من 13

الموضوع: خطأ بمحرك القوالب "قالبي"

  1. #1
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431

    خطأ بمحرك القوالب "قالبي"



    السلام عليكم ورحمة الله وبركاته
    كنت أستخدم نظام القوالب "قالبي" mytemplate-engine

    وكنت أقوم بالتكرار
    كود PHP:

    $Query 
    mysql_query("SELECT * FROM `shortlinks_links` WHERE `user_id`='$UserID' LIMIT 5");
    while(
    $row mysql_fetch_array($Query)){
    $row[] = $row;

    القالب :
    كود PHP:

    {loop row}
       <
    tr>
        <
    td class="tcat">
        <
    p align="center"><b><font face="Tahoma" size="2">
        <
    span lang="ar-sa">آخر خمس روابط قمت بتقصيرها :</span></font></b></td>
       </
    tr>
       <
    tr>
        <
    td><font face="Tahoma" style="font-size: 9pt">
        <
    span lang="ar-sa">&nbsp;- </span>{title}</font></td>
       </
    tr>
       {/
    loop

    يظهر لي :
    كود PHP:

    Warning
    Invalid argument supplied for foreach() in D:\AppServ\www\z\links_i\include\cach\mytpl_usercp_index.htm.php on line 60 
    لا أعلم هل الخطأ من النظام ام مني !

    بإنتظار الردود وشكراً







  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    320


    اهلا عزيزي ..

    اعتقد القيمه المعطاه ليست مصفوفه ! ولماذا ؟ اعتقد ان الناتج من الاستعلام لاشيء ..

    في هذه الحالات

    استخدم التأكد قبل الاستخدام

    كود:
    if(!is_array($row)) $row = array();
    ضع هذا قبل جلب القالب

    دمت بود





    __________________
    إلى اللقاء سوالف , وآسف على الإزعاج...
    moffed.com , kleeja.com/tour/ar ,phpbbarabia.com

  3. #3
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    السلام عليكم
    صحيح اخوي , عندا وضعت الكود الذي وضعته انت ذهب الخطأ
    لكن لم أستطع أن اقوم بالتكرار لكي أظهر مااريده , مع العلم ان المصفوفه غير خاليه ...
    فما الحل ؟
    وشكراً.






  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    320


    ff5006

    لا ادري مالنسخه الحاليه من النظام ..

    لكن اعتقد تحتاج ان تعمل assign للمتغير ..

    اممم ..

    او ان المتغيرات الخاصه باللوب تحتاج لشكل اخر ..

    اقصد .. {title}

    هلا وضعت النسخه .. لنرى ..

    دمت بود





    __________________
    إلى اللقاء سوالف , وآسف على الإزعاج...
    moffed.com , kleeja.com/tour/ar ,phpbbarabia.com

  5. #5
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    كود PHP:
    <?php 
       
    #--------------------------------------------------------------------- 
       # Mytemplate Engine version 1.3.1
       # Authors: Bruce & Saanina
       # http://Dev-ly.com || E-mail:Prof.Bruce@yahoo.it || Saanina@gmail.com 
       #--------------------------------------------------------------------- 
       
       # --------------------LAST CHANGES-------------------
       #fix deleted prosess (unlink)
       # added new idea for loop { i tested , its worrk with arays and sql)
       # added !=
       # fix loop (just its experssion )
       # fix if (use global variable with == > < ) 
       #--------------------------------------------------------------
       # change assign
       #fix include
       # fix loop ( it was give any things inside loop a numbers ) 
       # add include_tpl ( doesnt work now ... )
       # added if
       #  aded php inside template ..
       # added else 
       #added elseif 
       # change method of else ..etc 
       # seperated loop to function
       #fix assign
       #-------------------------------------------------------------
       # last change 09:39 ص 06/11/28
       
    class MyTemplate
       var 
    $Tempdir
       var 
    $cachedir
       var 
    $cachetime 0//by hour 
       
    var $pageTemp
       var 
    $page
       var 
    $php_compile 'on';

        function 
    compile($content) {  //was display function here
      //include_tpl
      
    preg_match('#{include_tpl (.*?)\}#i'$content$match_inc); 
      if (
    $match_inc[1]){$s = @file_get_contents("$this->Tempdir$match_inc[1]"); $content preg_replace('#{include_tpl(.*?)\}#i',$s$content); }
      
    //include_scrpit
      
    $content preg_replace('#{include_script (.*?)\}#i','<? include("\\1"); ?>'$content);
      
    //if .. else ... elseif ..etc
      
    $content preg_replace('#{if[^>](.*?)[^>](==|>|<|!=)[^>](.*?)\}#i','<? if($GLOBALS[\'\\1\']\\2\\3): ?>'$content);
      
    $content preg_replace('#{if (.*?)\}#i','<? if($GLOBALS[\'\\1\']): ?>'$content);
      
    $content preg_replace('#{elseif (.*?)[^>](==|>|<|!=)[^>](.*?)\}#i','<? elseif($GLOBALS[\'\\1\']\\2\\3): ?>'$content);
      
    $content preg_replace('#{elseif (.*?)\}#i','<? elseif(\\1): ?>'$content);
      
    $content preg_replace('#{else\}#i','<? else: ?>'$content);
      
    $content preg_replace('#{\/if\}#i','<? endif; ?>'$content);
      
    //loop 
      
    $content preg_replace_callback('#{loop ([a-zA-Z0-9\_\-\+\./]+)\}(.*?){\/loop\}#is',array(&$this,'loop_bt'), $content);
      
    //php
      
    if ($this->php_compile == 'on'){ $content preg_replace('#{php\}(.*?){\/php\}#is','<? \\1 ?>'$content);}
      
    // assigning 
      
    $content preg_replace('#{([a-zA-Z0-9\_\-\+\./]+)}#','<?=$GLOBALS[\'\\1\'];?>',$content);
      return 
    $content
        } 
        function 
    assign_r($array){ foreach($array as $key=>$value){$GLOBALS["$key"] = $value;} }
        function 
    assign($name,$value){$GLOBALS["$name"] = $value; }
     
     function 
    loop_bt ($match_loop) {
      
    $s_loop preg_replace('#{([a-zA-Z0-9\_\-\+\./]+)}#','<?=$GLOBALS[\'\\1\'][$i];?>',$match_loop[2]); 
      return (
    '<? foreach($GLOBALS['.$match_loop[1].'] as $key=>$value){?>'.$s_loop.'<?}#endloop?>');
     }
     
        function 
    show($content,$name_c=''){ //nofile .. use for thos contents without files . like sql templates
      //at first .. 
      
    $this->page = ($name_c!='') ? $name_c :  $content;
      
    //check step
         
    if (empty($this->cachedir)) { $this->cachedir $_ENV["TEMP"]; } 
         if (!
    is_writeable$this->cachedir ) ) { echo "<i>ERROR :</i> could not be write in cach folder!"; } 
      
    //delete step
         
    $npage        'mytpl_' $this->page ".php"
         
    $tpage        = @filemtime("$this->cachedir/$npage"); 
         if(
    $tpage >= ($tpage+(3600*$this->cachetime))){ @unlink("$this->cachedir/$npage"); } 
      
    //including step
         
    if(!file_exists("$this->cachedir/$npage")){ 
        if (
    $name_c==''){ // on development 
         
    if(!file_exists("$this->Tempdir$this->page")){ echo "<i>ERROR :</i> <b>$this->page</b> Template Not Found!"; exit();}
         
    ob_start();
         include(
    "$this->Tempdir$this->page"); 
         
    $this->pageTempob_get_clean();
        }else {
         
    $this->pageTemp =$content;
        }
        
    //compile content
        
    $this->pageTemp $this->compile($this->pageTemp); 
        
    //then
           
    $filenum = @fopen("$this->cachedir/$npage"'w'); 
           
    flock($filenumLOCK_EX); 
           @
    fwrite($filenum$this->pageTemp); 
           
    fclose($filenum); 
         } 
      
    //get 
      
    ob_start();
      include(
    "$this->cachedir/$npage"); 
      
    $this->pageTempob_get_clean();
      
    //now print 
      
    print $this->pageTemp;
        } 
         
    # end of class 
    ?>


    الملف الخاص بي :
    كود PHP:
    <?
    session_start
    ();
    #| Every Page |#
    $after="6";
    $allow_metas "2";
    $header "1";
    include(
    "include/config.php");
    include(
    "include/connect.php");
    include(
    "include/rows.php");
    $page_meta_open "$meta_open";
    $page_meta_desc "$meta_desc";
    if(
    $close==1){
    $title="الموقع مغلق";
    }
    else
    {
    $title ="لوحة التحكم";
    }
    include(
    "common_up.php");
    #| Every Page |#
    print '<font face="Tahoma">';

    if (isset(
    $_SESSION['links_user_session']) ) {
    $UserID $_SESSION['links_user_id'];

    if(
    $_GET['step'] == index){
    $Query mysql_query("SELECT * FROM `shortlinks_links` WHERE `user_id`='$UserID' LIMIT 5");
    while(
    $row mysql_fetch_array($Query)){
    $row[] = row;
    }
    if(!
    is_array($row)) { 
    $row[] = $row;
    }
    $url_num mysql_num_rows(mysql_query("SELECT `id` FROM `shortlinks_links` WHERE `user_id`='$UserID'"));
    $User mysql_fetch_array(mysql_query("SELECT * FROM `shortlinks_users` WHERE `id`='$UserID'"));
    print 
    mysql_error();
    $last_login $User['last_login'];
    $login_times $User['login_times'];
    $reg_date $User['reg_date'];
    $mail $User['mail'];
    $name $User['username'];
    $tpl->show("usercp_index.htm");
    @
    mysql_free_result($Query);
    @
    mysql_free_result($Num);
    $date date("d-m-Y");
    $UpLogInTimes = @mysql_query("UPDATE `shortlinks_users` SET `login_times`='$login_times+1' AND `last_login`='$date' WHERE `id`='$UserID'");
    }
     
    if(
    $_GET['edit'] == 1){
    $ID intval($_GET['id']);
    $check = @mysql_num_rows(@mysql_query("SELECT `id` FROM `shortlinks_links` WHERE `id`='$ID'"));
    // نتأكد من ان الرابط موجود اصلاً
    if($check == 1){
    $Query mysql_fetch_array(mysql_query("SELECT * FROM `shortlinks_links` WHERE `id`='$ID'"));
    if(
    $Query['user_id'] !== $UserID){
    // إذا كان الرابط المراد تعديله ليس ملكاً للعضو
    print "<font face='Tahoma'><div align='center'><b> خطأ ! </b></div></font>";
    include(
    "common_down.php");
    exit;
    }
    else
    {
    // هنا في حالة كان كل شئ صحيحاً
    $tpl->show("edit_links.htm");

    }
    }
    else
    {
    // إذا كان الرابط المراد تعديله غير موجود
    print "<font face='Tahoma'><div align='center'><b> خطأ ! </b></div></font>";
    include(
    "common_down.php");
    exit;
    }
    }
     
     
    // حذف رابط
    if($_GET['delete'] == 1){
    $id intval($_GET['id']);
    $Query = @mysql_query("SELECT * FROM `shortlinks_links` WHERE `id`='$id'");
    // إذا كان الرابط موجود
    if(@mysql_num_rows($Query) == 1){
    $Inf mysql_fetch_array($Query);
    // إذا كان الرابط ملكاً للعضو
    if($Inf['user_id'] == $UserID){
    }
    else
    {
    // إذا كان الرابط ليس ملكاً للعضو
    }
    }
    else
    {
    // إذا كان الرابط غير موجود
    }
    }
     
     
    }
    else
    {
    // في حال لم يـُسجل الدخول
    $tpl->show("login.htm");
    }

    include(
    "common_down.php");
    ?>

    القالب
    كود PHP:
    <html dir="rtl">

    <
    head>
    <
    meta http-equiv="Content-Language" content="en-us">
    </
    head>
    <
    p>&nbsp;</p>
    <
    table border="1" width="100%" id="table1" cellspacing="1" style="border-collapse: collapse" bordercolor="#C0C0C0">
     <
    tr>
      <
    td class="Nv"><font face="Tahoma" style="font-size: 10pt">&nbsp;<span lang="ar-sa">السلام 
      عليكم ورحمة الله وبركاته يا 
    </span><b>{name}</b><span lang="ar-sa">
      </
    span>/<span lang="ar-sa"بريدك الإلكتروني المـُسجل لدينا هو : </span>
      <
    i>{mail}</i> <span lang="ar-sa">.</span></font></td>
     </
    tr>
     <
    tr>
      <
    td><font face="Tahoma" style="font-size: 9pt">&nbsp;<span lang="ar-sa"
      
    مرحباً بك في لوحة التحكم تستطيع من هنا التحكم بروابطك ومعلوماتك بعض 
      المعلومات عنك 
    :<br>
    &
    nbsp;-<bتاريح تسجيلك</b> : </span>{reg_date} | <span lang="ar-sa"><b>آخر 
      تسجيل دخول لك كان في
    </b> : </span>{last_login} | <span lang="ar-sa"><b>
      
    عدد الروابط التي إختصرتها</b> </span>: {url_num} <span lang="ar-sa">| <b>
      
    عدد مرات تسجيل دخولك</b> : </span>{login_times}<span lang="ar-sa">.</span></font></td>
     </
    tr>
    </
    table>
    <
    table border="0" width="100%" id="table2" cellpadding="0" style="border-collapse: collapse">
     <
    tr>
      <
    td width="261">
      <
    table border="1" width="100%" id="table3" cellspacing="1" style="border-collapse: collapse" bordercolor="#C0C0C0">
       <
    tr>
        <
    td class="tcat">
        <
    p align="center"><font face="Tahoma" style="font-size: 9pt">
        <
    span lang="ar-sa"><b>معلوماتك</b></span></font></td>
       </
    tr>
       <
    tr>
        <
    td><font face="Tahoma" style="font-size: 9pt">
        <
    span lang="ar-sa">&nbsp;- <a href="cp.php?step=changepassword">
        <
    span style="text-decoration: none">تغيير كلمة المرور البريد 
        الإلكتروني
    </span></a> .</span></font></td>
       </
    tr>
       <
    tr>
        <
    td class="tcat">
        <
    p align="center"><font face="Tahoma" style="font-size: 9pt">
        <
    span lang="ar-sa"><b>التحكم بالروابط</b></span></font></td>
       </
    tr>
       <
    tr>
        <
    td><font face="Tahoma" style="font-size: 9pt">
        <
    span lang="ar-sa">&nbsp;-<a href="cp.php?step=new"><span style="text-decoration: none"
        
    إضافة رابط جديد</span></a> .</span></font></td>
       </
    tr>
       <
    tr>
        <
    td><font face="Tahoma" style="font-size: 9pt">
        <
    span lang="ar-sa">&nbsp;- <a href="cp.php?step=control">
        <
    span style="text-decoration: none">التحكم بالروابط</span></a> .</span></font></td>
       </
    tr>
      </
    table>
      </
    td>
      <
    td><br>
    &
    nbsp;<table border="1" width="100%" id="table4" cellspacing="1" style="border-collapse: collapse; border: 1px dotted #C0C0C0; padding: 3px">
    {
    loop row}
       <
    tr>
        <
    td class="tcat">
        <
    p align="center"><b><font face="Tahoma" size="2">
        <
    span lang="ar-sa">آخر خمس روابط قمت بتقصيرها :</span></font></b></td>
       </
    tr>
       <
    tr>
        <
    td><font face="Tahoma" style="font-size: 9pt">
        <
    span lang="ar-sa">&nbsp;- </span>{title}</font></td>
       </
    tr>
       {/
    loop}
      </
    table>
      </
    td>
     </
    tr>
    </
    table>

    </
    html
    وشكراً لك اخوي saanina






  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    320


    اهلين عزيزي ..

    الخطأ كان اثنين , منك ومن الكلاس ..

    الاول : ابحث بملف الكلاس عن :
    كود:
    $GLOBALS[\'\\1\'][$i]
    بدلها لـ
    كود:
    $value[\'\\1\']
    الخطا اللي منك .. هو انك استخدمت المتغير row .. لاستلام محتويات نفسه ! فلن يكون هناك مصفوفه

    عموما
    عدلها لاي متغير اخر

    $row[] = $row;

    مثلا
    $new[] = $row;


    وان شاء الله النسخه الجايه من الكلاس اكثر تطور واستقرار , وخصوصا اللوب .. راح يكون هناك نظام صفحات .. و معرفة الزوجي والفردي و تبديل بين لونين مثلا او غيرهم ..

    ايضا احب اقول ان هذا الكلاس الحالي .. فيه امكانيه جلب محتوى من القاعده .. عن طريق دالة show وراح تتطور اكثر بالنسخ الجايه ..

    دمت بود





    __________________
    إلى اللقاء سوالف , وآسف على الإزعاج...
    moffed.com , kleeja.com/tour/ar ,phpbbarabia.com

  7. #7
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    السلام عليكم
    شكراً لك أخي saanina الآن أصبح يعمل ., لكن المشكله انه في التكرار يطبع لي حرف واحد !!!!
    "آخر خمس روابط
    - r
    "

    بس !

    على العموم راح القى لها حل إن شاء الله , شكراً لك وماقصرت
    وبالتوفيق لكم في نظام القوالب إن شاء الله ...,





    التعديل الأخير تم بواسطة ff5006 ; 05-08-2008 الساعة 08:57 PM

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    320


    ff5006

    لو تبي اخر نسخه قبل الطرح , كلمني على البريد ...

    دمت بود





    __________________
    إلى اللقاء سوالف , وآسف على الإزعاج...
    moffed.com , kleeja.com/tour/ar ,phpbbarabia.com

  9. #9
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    عذرا! هذا العضو حدد عدم رغبته باستلام رسائل البريد الإلكترونية. إذا كنت لا تزال راغباً في إرسال بريد إلكتروني إلى هذا العضو, قم بمراسلة الإدارة ربما تستطيع مساعدتك.



    للأسف ماقدرت .






  10. #10
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73


    مداخله بعيده تقريبا عن صلب الموضوع.. ولكن للافاده

    لماذا لا تجربون كلاس ضيف؟
    القالب السهل - easyTemplate


    فهو يدعم:
    1) تضمين الملفات
    2) حلقة التكرار لمصفوفة او من القاعده مباشرة (مع خاصية تقسيم الصفحات)
    3) التبديل: خاصيه مفيده وجميله لتغيير الوان او صور صفوف الجداول وغيرها
    4) الجمل الشرطية (IF - ELSEIF - ElLSE)
    5) الشرط القصير: مثل الموجود في ال php
    $foo = ($test==2) ? 'num is 2' : 'num is unknown';
    6) المتغيرات والمصفوفات:
    7) نظام الكاش
    8) بسيط وسهل جدا في التركيب والاستخدام (مثل اسمه بالضبط )
    9) خفيف وصغير الحجم
    10) مع انك لن تحتاج لل assign في هذا القالب الرائع ومع ذلك فهو يحتوي على خاصيه ال assign


    انصح بشدة بتجربته..
    فهو فعلا يستحق عناء التجربه

    وشكرا





    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة

  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    320


    DSQ8.com
    نظام "قالبي" يدعم php5 و php4 ..

    ff5006
    saanina#gmail.com





    __________________
    إلى اللقاء سوالف , وآسف على الإزعاج...
    moffed.com , kleeja.com/tour/ar ,phpbbarabia.com

  12. #12
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    309


    النسخة ليست الاخيرة يوجد نسخة بعدها ياff5006
    DSQ8.com
    لو تلاحظ نظام قالبي قمنا بالعديد بالمميزات التي لم تكن موجودة في القالب السهل مثلا في طريقة حفظ الكاش "الملف المؤقت" تم الاقتباس من نظام "قالبي" في "القالب السهل" ,,, راي الشخصي





    __________________
    Bruce - مدونة شديدة التخصص في PHP وتطبيقات الويب

  13. #13
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    النسخة ليست الاخيرة يوجد نسخة بعدها ياff5006
    DSQ8.com
    لو تلاحظ نظام قالبي قمنا بالعديد بالمميزات التي لم تكن موجودة في القالب السهل مثلا في طريقة حفظ الكاش "الملف المؤقت" تم الاقتباس من نظام "قالبي" في "القالب السهل" ,,, راي الشخصي
    نعم اخي Bruce قام الأخ saanina مشكوراً بإرسالها لي . : )










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض