Thứ Hai, 30 tháng 12, 2013

Phân trang trong wordpress

Phân trang

Dùng hàm paginate_links() có sẵn trong wordpress


 <ul>
            <?php
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
            $args = array(
                'posts_per_page' => 1,
                'category_name' => 'cong-nghe',
                'paged' => $paged,
            );

            $the_query = new WP_Query($args);
            while ($the_query->have_posts()):$the_query->the_post();

                echo ' <li>';
                echo '  <div class="title"> ';
                the_title();
                echo '</div>';
                echo '   <div class="img">';
                the_post_thumbnail();
                echo '</div>';
                echo '  <div class="content">';
                echo get_the_content();
                echo '</div>';
                echo '</li>';

            endwhile;

            $big = 999999999; // need an unlikely integer
            echo paginate_links(array(
                'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
                'format' => '?paged=%#%',
                'current' => max(1, get_query_var('paged')),
                'total' => $the_query->max_num_pages));
            ?>


        </ul>

Chủ Nhật, 29 tháng 12, 2013

Hiển thị bài viết ngẫu nhiên trong wordpress

 Hiển thị bài viết ngẫu nhiên trong wordpress dùng thuộc thính 'orderby' => 'rand'
// hiển thị 5 bài viết ngẫu nhiên
 
 <?php
        global $post;
        $args = array('numberposts' => 5, 'category_name' => 'thiet-bi-ho-tro', 'orderby' => 'rand');
        $posts = get_posts($args);
        foreach ($posts as $post): setup_postdata($post);?>

// Echo nội dung
.......................
<?php endforeach ?>

Hiển thị nội dung của các trang và bài viết

<?php while ( have_posts() ) : the_post(); ?>
            <?php the_content(); ?>
        <?php endwhile;?>

Loại bỏ các thẻ html có trong chuỗi dữ liệu

dùng hàm strip_tags để bỏ đi các thẻ html có trong chuỗi khi hiển thị lên web
strip_tags($chuỗi);

Hiển thị bài viết trong category theo tên Slug

Trong category của phần post bài viết tạo Slug có tên Tiện ích và Slug => tien-ich

Để gọi tất cả bài viết trong Slug ra:
 <?php
        global $post;
        $args = array('numberposts' => 10, 'category_name' => 'loi-ich'); //số lượng hiển thị 10 sp
        $posts = get_posts($args);
        foreach ($posts as $post): setup_postdata($post);?>


//Echo nội dung ra ở đây
<?php echo the_post_thumbnail(); ?>
<php echo the_title(); ?> 
<?php echo the_content(); ?>

 <?php endforeach ?>

Hiển thị dữ liệu category child của page by id

Ví dụ: trong page giới thiệu ta có id nó là 12, và subcategory của page gồm có các trang con
Để hiển thị các trang con có trong trang Giới thiệu đoạn code sau:

 $mypages = get_pages(array('post_type' => 'page', 'number' => '6', 'child_of' => '12', 'sort_column' => 'post_date', 'sort_order' => 'desc'));

        foreach ($mypages as $pages) {

            $content = $pages->post_content;//lấy nội dung
            ?>

// HIỂN THỊ NỘI DUNG RA
<div class="title-pro-home">
                    <?php echo $pages->post_title; ?> //lấy post title

<?PHP echo $content ;?>
                </div>
                <div class="img-pro-home"><?php echo get_the_post_thumbnail($pages->ID, 'medium'); ?> //lấy thumbnail

</div>
<?php } ?>   

Thứ Tư, 5 tháng 6, 2013

Action, ActionForm trong struts


Trên form feedback khi nhập thông tin vào form sau đó submit tất cả dữ liệu trên form sẽ được hiển thị qua trang khác.
- Trang index.jsp


Trang kết quả: feekback.jsp



  1. Trang index.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
        <%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <html:form action="feakback.do">
    <table>
    <tr align="center" style="height: 40px;font-size: 25px;font-weight: bold"><td colspan=2">FeekBack</td></tr>
      <tr>
        <td>Name:</td>
        <td><html:text property="name" name="feakBackActionForm"/></td>
      </tr>
      <tr>
        <td>Sex:</td>
        <td>
            <html:radio property="sex" value="F" name="feakBackActionForm">Female</html:radio>
            <html:radio property="sex" value="M" name="feakBackActionForm">Male</html:radio>
        </td>
      </tr>
      <tr>
        <td>Comments:</td>
        <td><html:textarea property="comments" name="feakBackActionForm"></html:textarea>
    </td>
      </tr>
      <tr><td colspan="2"><html:submit/></td></tr>
    </table>   
    </html:form>
    </body>
    </html>
  2. Trang feekback.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
        <%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>  
        <%@taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>

    <h3>FeekBack</h3>
    <body>
    Name :<bean:write name="feakBackActionForm" property="name"/><br>
    Sex :<logic:equal name="feakBackActionForm" property="sex" value="M">Male</logic:equal>
    <logic:equal value="F" name="feakBackActionForm" property="sex">Female</logic:equal>
    <br></br>
    Comments : <bean:write name="feakBackActionForm" property="comments"/>
    </body>
  3. FeakBackAction

    public class FeakBackAction extends Action {
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        // TODO Auto-generated method stub
       
        FeakBackActionForm frm=(FeakBackActionForm)form;
        if(frm.getName().equals(""))
        {   
        return mapping.findForward("tb");
        }else
        return mapping.findForward("tc");
           
    }}
  4. FeakBackActionForm
    package pack;

    import org.apache.struts.action.ActionForm;

    public class FeakBackActionForm extends ActionForm {
      
      private static final long serialVersionUID = 1L;
    private String name;
    private String sex;
    private String comments;

    public FeakBackActionForm(){   
    }
    public FeakBackActionForm(String name,String sex,String comments){
        this.name=name;
        this.sex=sex;
        this.comments=comments;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getComments() {
        return comments;
    }
    public void setComments(String comments) {
        this.comments = comments;
    }

    }
  5. struts-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
              "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
    <struts-config>
        <form-beans>
            <form-bean name="feakBackActionForm" type="pack.FeakBackActionForm"></form-bean>
        </form-beans>   
        <action-mappings>
            <action path="/feakback" name="feakBackActionForm" scope="request" type="pack.FeakBackAction">
            <forward name="tc" path="/feedback.jsp"></forward>       
            </action>       
        </action-mappings>   
    </struts-config>


trong struts

In danh sách nhân viên sử dụng tag <logic:iterate> trong struts, như bên dưới


  1.  Users class
    package packClass;
    public class Products {
    private String name;
    private String age;

    public Products(String age,String name){
        this.age=age;
        this.name=name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
    }

  2.  ListAction

    import packClass.Products;

    public class ListProductsAction extends Action {
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        // TODO Auto-generated method stub
        List<Users> listusers=new ArrayList<Users>();
       
        listusers.add(new Users("20","Nguyen ngoc bich"));
        listusers.add(new Users("21","Tran thi thuy"));
        listusers.add(new Users("22","Le van troi"));
        listusers.add(new Users("23","Nguyen cong"));
        listusers.add(new Users("24","Luu chi binh"));
        request.setAttribute("listusers", listusers);
        return mapping.findForward("listusers");
       
    }
    }
  3. struts-config.xml

    <action path="/list" type="pack.ListAction" scope="request">
                <forward name="listusers" path="/list.jsp"></forward>
            </action>
  4. list.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
         <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
        <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <body>

    <table border="1" style="text-align: center; border: 1px solid ;">
    <tr>
    <TH>Name</TH>
    <TH>Age</TH>
    </tr>
    <logic:iterate id="listid" name="listusers">
        <tr>
            <td> <bean:write name="listid" property="name"/></td>
            <td> <bean:write name="listid" property="age"/>   </td>
        </tr>
        </logic:iterate>
    </table>
    </body>
    </html>

Login đơn giản với struts




Thư mục web gồm có các lib trên

Thực hiện login đơn giản ,
- Khi nhập username và pasword giống nhau thì đăng nhập thành công và chuyển đến trang success.jsp hiển thị username vừa nhập 
- Ngược lại trả về trang login (index.jsp) 
        
  1. Trong file struts-config.xml ta có:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
              "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
    <struts-config>
        <form-beans>
            <form-bean name="loginActionForm" type="pack.LoginActionForm"></form-bean>
        </form-beans>
       
        <action-mappings>
            <action path="/login" name="loginActionForm" scope="session" type="pack.LoginAction">
            <forward name="failed" path="/index.jsp"></forward>
            <forward name="success" path="/success.jsp"></forward>
            </action>
          
        </action-mappings>   
    </struts-config>
  2. File index.jsp
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
         <%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>login</title>
    </head>
    <body>
    <center>
    <h2>Login</h2>
    <html:form action="/login">
    User name: <html:text property="usern" name="loginActionForm"/><br>
    Password : <html:text property="pass" name="loginActionForm"/><br>
    <html:submit/>
    </html:form>
    </center>
    </body>
    </html>
  3. Trang success.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
        <%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

    <h2>Login successful</h2>
    Your user name is : <bean:write property="usern" name="loginActionForm" />
  4. Trong LoginActionForm
    package pack;
    import org.apache.struts.action.ActionForm;

    public class LoginActionForm extends ActionForm {
        private static final long serialVersionUID = 1L;
        private String usern;
        private String pass;

        public String getUsern() {
            return usern;
        }
        public void setUsern(String usern) {
            this.usern = usern;
        }
        public String getPass() {
            return pass;
        }
        public void setPass(String pass) {
            this.pass = pass;
        }
    }
  5. LoginAction
    package pack;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;

    public class LoginAction extends Action {
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        // TODO Auto-generated method stub
       
        LoginActionForm frm=(LoginActionForm)form;
        if(frm.getUsern().equals(frm.getPass()) && !frm.getUsern().equals("") && !frm.getPass().equals("")){
        return mapping.findForward("success");
        }else{
            return mapping.findForward("failed");}
       
    }
    }


     

Thứ Ba, 28 tháng 5, 2013

Hàm DAY, MONTH, YEAR trong SQL


Hàm DAY, MONTH, YEAR trả về ngày, tháng, năm

hiển thị tháng sinh của nhân viên với đk là năm sinh > 1960

SELECT LastName, 
MONTH(BirthDate) as 'thang sinh'
FROM dbo.Employees 
WHERE  
YEAR(BirthDate)>1960




SUBSTRING () trong SQL

SUBSTRING ( expression ,start , length )
 
SELECT SUBSTRING(cast(GETDATE() as varchar),1,19)  
 
kết quả: 
 May 28 2013  9:09PM 
 
---> hàm getdate() : lấy ngày/ tháng/ năm giờ :phút: giây hiện tại
CAST() là hàm ép kiểu về kiểu chuỗi varchar,
 SUBSTRING() : lấy chuỗi bắt đầu từ 1 đến ký tự thứ 19

Hàm cộng ngày giờ trong SQL server,

Cộng tháng
 
SELECT DATEADD(month,1,DATEADD(day,1,'8/28/2010'))

kết quả : 2010-09-29 00:00:00.000

SELECT DATEADD(month,-(10/2), SYSDATETIME());

Cộng ngày và giờ
select DATEADD(D,1,DATEADD(HH,1,'2013-05-28 8:45')) as 'gio'

kết quả: 2013-05-29 09:45:00.000

Chủ Nhật, 10 tháng 3, 2013

HÀM TRONG PHP


HÀM TRONG PHP

HÀM XỬ LÝ CHUỖI
1.     Hàm strlen: Đếm số ký tự của chuỗi
strlen:
<? $str = 'abcdef';
   echo strlen($str);
?> <br />
1.     Hàm strpos, stripos: Tìm chuỗi con trong chuỗi mẹ
strpos:
<? $me="abcDabcd";
   $con="d";
   echo strpos($me, $con);
?> <br />
2.     Hàm str_replace, str_ireplace: Thay thế chuỗi con bằng một chuỗi khác
str_replace:
<? $str="ab_AB_ab";
   echo str_replace("ab","xy",$str);
?> <br />
3.     Hàm number_format : Định dạng số
number_format 1234.5678 :
<? $n = 1234.5678;
echo "en = ", number_format($n, 2, '.'',' );
echo "vi = ", number_format($n, 2 , ',' , '.' );
?> <br/>
4.     Hàm strip_tags: Cắt bỏ cc tag html
strip_tags: <? echo strip_tags("<b><i>PHP</i></b>"); ?> <br />
5.     Hàm strstr: Trích chuỗi con
strstr: <? echo strstr("teo@yahoo.com","@");?> <br />
6.     Hàm substr: Trích chuỗi con
substr: <? echo substr("teo@yahoo.com",4,50);?> <br />
7.     Hàm mb_convert_case: Đổi chữ hoa<->thường MB_CASE_LOWER, MB_CASE_UPPER, MB_CASE_TITLE
mb_convert_case:
<? echo mb_convert_case("lập trình ứng dỤng",MB_CASE_TITLE,'utf-8'); ?> <br />
8.     Hàm md5: Mã hóa 1 chuỗi
md5: <? echo md5("123");?> <br />
9.     Hàm sha1: Mã hóa 1 chuỗi
sha1: <? echo sha1("123");?> <br />

HÀM THỜI GIAN
10. Hàm time: Cho giờ hiện hành
time: <? echo time() ?> <br />
11. Hàm checkdate: Kiểm tra ngày hợp lệ hay không
checkdate:
<? echo (checkdate(13,17,2010)==true)? "Ngày hợp lệ":"Ngày không hợp lệ";?>
12. Hàm date: Định dạng ngày
date:<br />
Now:  <? echo date("d/m/Y H:i:s");?> <br />
Thứ trong tuần: <? echo date("w");?> <br />
Tên thứ trong tuần: <? echo date("D") ;?> <br />
Tên thứ trong tuần: <? echo date("l");?> <br />
Tên tháng: <? echo date("M") ;?> <br />
Tên tháng:<? echo date("F");?> <br />
Ngày trong năm: <? echo date("z");?> <br />
13. Hàm strtotime: Đổi chuỗi thành dạng timestamp
strtotime:<br />
Now: <? echo strtotime("now");?> <br />
+1 day: <? echo date("d/m/Y H:i:s", strtotime("+1 day"));?> <br />
+1 week: <? echo date("d/m/Y H:i:s", strtotime("+1 week") );?> <br />
+1 week 2 days 4 hours 2 seconds: <? echo date("d/m/Y H:i:s",strtotime("+1 week 2 days 4 hours 2 seconds")) ?> <br>
next Thursday: <? echo date("d/m/Y", strtotime("next Thursday") )?> <br />
last Monday: <? echo date("d/m/Y", strtotime("last Monday") )?> <br />
10 September 2000: <? echo date("d/m/Y",strtotime("10 September 2000") )?> <br/>

HÀM XỬ LÝ FILE
14. Hàm basename: Lấy tên file
basename:
<? $file = "/php01/hamPHP.php";
   echo basename($file);
?> <br />
15. Hàm filesize: Lấy kích thước file
filesize:
<? $f = "php02.sql";
   echo filesize($f).' bytes';
?> <br />
16. Hàm file_exists: Kiểm tra 1 file có tồn tại hay không
file_exists:
<?  $f = "php02.sql";
    if ( file_exists($f) == true) echo "Có file"; else echo "Không có file";
?> <br/>
17. Hàm fopen, fclose, fread: Mở, đóng, đọc nội dung file text
fopen, fclose, fread:
<? $file = "readme.txt";
   $f = fopen($file,"r+");
   $str = fread($f, filesize($file) );
   fclose($f);echo $str;
?> <br />
18. Hàm unlink: Xóa file
unlink: <? unlink("readme2.txt");?> <br />
19. Hàm mkdir: Tạo folder
mkdir: <? mkdir("hinh/dulich",0777,true);?> <br />
20. Hàm copy: Sao chép file
copy: <? copy("php02.sql", "php02bis.sql") ;?> <br />
21. Hàm rename: Đổi tên file
rename: <? rename("php02bis.sql","abc.sql");?> <br />
22. Hàm file_get_contents: Đọc toàn bộ nội dung 1 file text
file_get_contents:
<? $str = file_get_contents("readme.txt");
   echo $str;
?> <br />

CÁC HÀM KHÁC
23. Hàm isset: Kiểm tra sự tồn tại của 1 biến
isset:
<?php $x=1;
if (isset($x)==true) echo "Có biền x"; else echo "Không có biến x ";
if (isset($y)==true) echo "Có biền y"; else echo "Không có biến y ";
?>
24. Hàm unset: Hủy bỏ 1 biến
unset:
<?php $x=1; $y=2;
unset($x);
if (isset($x)==true) echo "Có biền x"; else echo "Không có biến x ";
if (isset($y)==true) echo "Có biền y"; else echo "Không có biến y ";
?>