diff --git a/newsportal/about-us.php b/newsportal/about-us.php new file mode 100644 index 0000000..a284882 --- /dev/null +++ b/newsportal/about-us.php @@ -0,0 +1,73 @@ + + + + + + + + + + + + News Portal | About us + + + + + + + + + + + + + + +
+ + +

+ +

+ + + + +
+ +
+ +

+
+
+ + + +
+ + + + + + + + + + + + diff --git a/newsportal/admin/aboutus.php b/newsportal/admin/aboutus.php new file mode 100644 index 0000000..cf90e2d --- /dev/null +++ b/newsportal/admin/aboutus.php @@ -0,0 +1,244 @@ + + + + + + + + + + + + + Newsportal | About us Page + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ +
+
+ + +
+
+
+

About Page

+ +
+
+
+
+ + +
+
+ + + + + + + + + + + +
+
+ + +
+
+
+
+
+
+ + +
+ + + + + + + +
+
+
+

Page Details

+ +
+
+
+ + + + +
+
+
+
+
+ + + + +
+ +
+ + + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/add-category.php b/newsportal/admin/add-category.php new file mode 100644 index 0000000..5c41324 --- /dev/null +++ b/newsportal/admin/add-category.php @@ -0,0 +1,202 @@ + + + + + + + + Newsportal | Add Category + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+
+ + +
+
+
+

Add Category

+ +
+
+
+
+ + + +
+
+
+

Add Category

+
+ + + +
+
+ + + + + + + + + + + +
+
+ + + + + +
+
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/add-post.php b/newsportal/admin/add-post.php new file mode 100644 index 0000000..be3dd39 --- /dev/null +++ b/newsportal/admin/add-post.php @@ -0,0 +1,305 @@ +alert('Invalid format. Only jpg / jpeg/ png /gif format allowed');"; +} +else +{ +//rename the image file +$imgnewfile=md5($imgfile).$extension; +// Code for move image into directory +move_uploaded_file($_FILES["postimage"]["tmp_name"],"postimages/".$imgnewfile); + +$status=1; +$query=mysqli_query($con,"insert into tblposts(PostTitle,CategoryId,SubCategoryId,PostDetails,PostUrl,Is_Active,PostImage,postedBy) values('$posttitle','$catid','$subcatid','$postdetails','$url','$status','$imgnewfile','$postedby')"); +if($query) +{ +$msg="Post successfully added "; +} +else{ +$error="Something went wrong . Please try again."; +} + +} +} +?> + + + + + + + + + + + + Newsportal | Add Post + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Add Post

+ +
+
+
+
+ + +
+
+ + + + + + + + + + + +
+
+ + +
+
+
+
+
+
+ + +
+ + + +
+ + +
+ +
+ + +
+ + +
+
+
+

Post Details

+ +
+
+
+ + +
+
+
+

Feature Image

+ +
+
+
+ + + + +
+
+
+
+
+ + + + +
+ +
+ + + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/add-subadmins.php b/newsportal/admin/add-subadmins.php new file mode 100644 index 0000000..b1fe9ad --- /dev/null +++ b/newsportal/admin/add-subadmins.php @@ -0,0 +1,199 @@ +alert('Sub-admin details added successfully.');"; +echo ""; +} else { +echo ""; +} +} + +?> + + + + + + + Newsportal | Add Subadmin + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+
+ + +
+
+
+

Add Subadmin

+ +
+
+
+
+ + + +
+
+
+

Add Subadmin

+
+ + + + + + + + + +
+
+
+
+ + + +
+ + +
+ + +
+ +
+ + +
+ +
+ +
+ +
+
+ +
+
+ + +
+ + + + + + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/add-subcategory.php b/newsportal/admin/add-subcategory.php new file mode 100644 index 0000000..a669b62 --- /dev/null +++ b/newsportal/admin/add-subcategory.php @@ -0,0 +1,235 @@ + + + + + + + + Newsportal | Add Sub Category + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+
+ + +
+
+
+

Add Sub-Category

+ +
+
+
+
+ + + +
+
+
+

Add Sub-Category

+
+ + + +
+
+ + + + + + + + + + + +
+
+ + + + + +
+
+
+
+ +
+ +
+
+ + + + +
+ +
+ +
+
+ + + + + + +
+ +
+ +
+
+ +
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + +
+
+
+ + + +
+ +
+ + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/change-image.php b/newsportal/admin/change-image.php new file mode 100644 index 0000000..a818b6f --- /dev/null +++ b/newsportal/admin/change-image.php @@ -0,0 +1,264 @@ +alert('Invalid format. Only jpg / jpeg/ png /gif format allowed');"; +} +else +{ +//rename the image file +$imgnewfile=md5($imgfile).$extension; +// Code for move image into directory +move_uploaded_file($_FILES["postimage"]["tmp_name"],"postimages/".$imgnewfile); + + + +$postid=intval($_GET['pid']); +$query=mysqli_query($con,"update tblposts set PostImage='$imgnewfile' where id='$postid'"); +if($query) +{ +$msg="Post Feature Image updated "; +} +else{ +$error="Something went wrong . Please try again."; +} +} +} +?> + + + + + + + + + + + + Newsportal | Add Post + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Update Image

+ +
+
+
+
+ + +
+
+ + + + + + + + + + + +
+
+
+ +
+
+
+
+ +
+ + +
+ + + +
+
+
+

Current Post Image

+ +
+ +
+
+
+ + +
+
+
+

New Feature Image

+ +
+
+
+ + + +
+
+
+
+ + + + +
+ +
+ + + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/change-password.php b/newsportal/admin/change-password.php new file mode 100644 index 0000000..445e2c2 --- /dev/null +++ b/newsportal/admin/change-password.php @@ -0,0 +1,256 @@ + 12]; +$hashedpass=password_hash($password, PASSWORD_BCRYPT, $options); +$adminid=$_SESSION['login']; +// new password hashing +$newpassword=$_POST['newpassword']; +$newhashedpass=password_hash($newpassword, PASSWORD_BCRYPT, $options); + +date_default_timezone_set('Asia/Kolkata');// change according timezone +$currentTime = date( 'd-m-Y h:i:s A', time () ); +$sql=mysqli_query($con,"SELECT AdminPassword FROM tbladmin where AdminUserName='$adminid' || AdminEmailId='$adminid'"); +$num=mysqli_fetch_array($sql); +if($num>0) +{ + $dbpassword=$num['AdminPassword']; + +if (password_verify($password, $dbpassword)) { + + $con=mysqli_query($con,"update tbladmin set AdminPassword='$newhashedpass', updationDate='$currentTime' where AdminUserName='$adminid'"); +$msg="Password Changed Successfully !!"; +} +} +else +{ +$error="Old Password not match !!"; +} +} + + +?> + + + + + + + Newsportal | Add Category + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+
+ + +
+
+
+

Change Password

+ +
+
+
+
+ + + +
+
+
+

Change Password

+
+ + + +
+
+ + + + + + + + + + + +
+
+ + + + + +
+
+
+ +
+ +
+ +
+
+ + +
+ +
+ +
+
+ + +
+ +
+ +
+
+ +
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/check_availability.php b/newsportal/admin/check_availability.php new file mode 100644 index 0000000..afcdb99 --- /dev/null +++ b/newsportal/admin/check_availability.php @@ -0,0 +1,16 @@ +0){ +echo " Username already exists. Try with another username"; + echo ""; +} else{ +echo " Username available for Registration ."; +echo ""; +} +} +?> diff --git a/newsportal/admin/contactus.php b/newsportal/admin/contactus.php new file mode 100644 index 0000000..79abe8c --- /dev/null +++ b/newsportal/admin/contactus.php @@ -0,0 +1,244 @@ + + + + + + + + + + + + + Newsportal | Contact us Page + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Contact us Page

+ +
+
+
+
+ + +
+
+ + + + + + + + + + + +
+
+ + +
+
+
+
+
+
+ + +
+ + + + + + + +
+
+
+

Page Details

+ +
+
+
+ + + + +
+
+
+
+
+ + + + +
+ +
+ + + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/dashboard.php b/newsportal/admin/dashboard.php new file mode 100644 index 0000000..82d01f5 --- /dev/null +++ b/newsportal/admin/dashboard.php @@ -0,0 +1,267 @@ + + + + + + + + + + News Portal | Dashboard + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/edit-category.php b/newsportal/admin/edit-category.php new file mode 100644 index 0000000..029c4ca --- /dev/null +++ b/newsportal/admin/edit-category.php @@ -0,0 +1,212 @@ + + + + + + + + Newsportal | Add Category + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+
+ + +
+
+
+

Edit Category

+ +
+
+
+
+ + + +
+
+
+

Edit Category

+
+ + + +
+
+ + + + + + + + + + + +
+
+ + + + + +
+
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + +
+
+
+ + + +
+ +
+ + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/edit-post.php b/newsportal/admin/edit-post.php new file mode 100644 index 0000000..377df62 --- /dev/null +++ b/newsportal/admin/edit-post.php @@ -0,0 +1,291 @@ + + + + + + + + + + + + + Newsportal | Add Post + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Edit Post

+ +
+
+
+
+ + +
+
+ + + + + + + + + + + +
+
+ + +
+
+
+
+
+
+ + +
+ + + +
+ + +
+ +
+ + +
+ + +
+
+
+

Post Details

+ +
+
+
+ +
+
+
+

Post Image

+ +
+Update Image +
+
+
+ + + + + +
+
+
+
+ + + + +
+ +
+ + + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/edit-subadmin.php b/newsportal/admin/edit-subadmin.php new file mode 100644 index 0000000..b003117 --- /dev/null +++ b/newsportal/admin/edit-subadmin.php @@ -0,0 +1,226 @@ +alert('Sub-admin details updated.');"; +} +else{ +echo ""; +} +} + + +?> + + + + + + + Newsportal |Edit Subadmin + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+
+ + +
+
+
+

Edit Subadmin

+ +
+
+
+
+ + + +
+
+
+

Edit Subadmin

+
+ + + +
+
+ + + + + + + + + + + +
+
+ + + + + + +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ + +
+
+ + +
+ + +
+ + + + + + + + + + + +
+
+
+ + + +
+ +
+ + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/edit-subcategory.php b/newsportal/admin/edit-subcategory.php new file mode 100644 index 0000000..12e51c1 --- /dev/null +++ b/newsportal/admin/edit-subcategory.php @@ -0,0 +1,245 @@ + + + + + + + + Newsportal | Edit Sub Category + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+
+ + +
+
+
+

Add Sub-Category

+ +
+
+
+
+ + + +
+
+
+

Add Sub-Category

+
+ + + +
+
+ + + + + + + + + + + +
+
+ + + + + +
+
+
+
+ +
+ +
+
+ + + + +
+ +
+ +
+
+ + + + + + +
+ +
+ +
+
+ + + +
+ +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + +
+
+
+ + + +
+ +
+ + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/forgot-password.php b/newsportal/admin/forgot-password.php new file mode 100644 index 0000000..a4f6ad0 --- /dev/null +++ b/newsportal/admin/forgot-password.php @@ -0,0 +1,159 @@ +0){ + $query1=mysqli_query($con,"update tbladmin set AdminPassword='$password' where AdminEmailId='$email' && AdminUserName='$username' "); + if($query1) + { +echo ""; +echo ""; + + } + + } + else{ + + echo ""; + } + } + + ?> + + + + + + + + + + + + News Portal | Forgot Password + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + + + + + + +
+ + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/get_subcategory.php b/newsportal/admin/get_subcategory.php new file mode 100644 index 0000000..57aa61c --- /dev/null +++ b/newsportal/admin/get_subcategory.php @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/newsportal/admin/index.php b/newsportal/admin/index.php new file mode 100644 index 0000000..6b49f77 --- /dev/null +++ b/newsportal/admin/index.php @@ -0,0 +1,136 @@ +0) +{ + +$_SESSION['login']=$_POST['username']; +$_SESSION['utype']=$num['userType']; + echo ""; + }else{ +echo ""; + } + +} +?> + + + + + + + + + + + + News Portal | Admin Panel + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + + + + + + +
+ + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/logout.php b/newsportal/admin/logout.php new file mode 100644 index 0000000..8bb25f5 --- /dev/null +++ b/newsportal/admin/logout.php @@ -0,0 +1,11 @@ + + diff --git a/newsportal/admin/manage-categories.php b/newsportal/admin/manage-categories.php new file mode 100644 index 0000000..5563757 --- /dev/null +++ b/newsportal/admin/manage-categories.php @@ -0,0 +1,286 @@ + + + + + + | Manage Categories + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Manage Categories

+ +
+
+
+
+ + + +
+
+ + + + + + + + + + +
+ + + + + + + + +
+
+
+
+ + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
# CategoryDescriptionPosting DateLast updation DateAction
+  
+
+ + + + +
+ +
+ + +
+ + + + +
+
+
+
+ +

Deleted Categories

+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
# CategoryDescriptionPosting DateLast updation DateAction
+  
+
+ + + + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/manage-comments.php b/newsportal/admin/manage-comments.php new file mode 100644 index 0000000..50a153c --- /dev/null +++ b/newsportal/admin/manage-comments.php @@ -0,0 +1,260 @@ + + + + + + | Manage Cooments + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Manage Approved Comments

+ +
+
+
+
+ + + +
+
+ + + + + + + + + + +
+ + + + + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
# NameEmail IdCommentStatusPost / NewsPosting DateAction
+ + + + + + +  
+
+ + + + +
+ +
+ + +
+ + + + +
+
+
+
+ + +
+ + + + + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/manage-posts.php b/newsportal/admin/manage-posts.php new file mode 100644 index 0000000..747f88e --- /dev/null +++ b/newsportal/admin/manage-posts.php @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + Newsportal | Manage Posts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Manage Posts

+ +
+
+
+
+ + + + + +
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TitleCategorySubcategoryAction

No record found

+  
+
+
+
+
+ + + +
+ +
+ + + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/manage-subadmins.php b/newsportal/admin/manage-subadmins.php new file mode 100644 index 0000000..bc6b313 --- /dev/null +++ b/newsportal/admin/manage-subadmins.php @@ -0,0 +1,186 @@ +alert('Sub-admin details deleted.');"; +echo ""; +} + +?> + + + + + | Manage Subadmins + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Manage Sub-admins

+ +
+
+
+
+ + + + + + + + + + + + +
+
+
+
+ + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
# UsernameEmailPosting DateLast updation DateAction
+  
+
+ + + + +
+ +
+ + +
+ + + + + + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/manage-subcategories.php b/newsportal/admin/manage-subcategories.php new file mode 100644 index 0000000..2a1f2f3 --- /dev/null +++ b/newsportal/admin/manage-subcategories.php @@ -0,0 +1,313 @@ + + + + + + News | Manage SubCategories + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Manage SubCategories

+ +
+
+
+
+ + + +
+
+ + + + + + + + + + +
+ + + + + + + + +
+
+
+
+ + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
# CategorySub CategoryDescriptionPosting DateLast updation DateAction

No record found

+  
+
+ + + + +
+ +
+ + +
+ + + + +
+
+
+
+ +

Deleted SubCategories

+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
# CategorySub CategoryDescriptionPosting DateLast updation DateAction

No record found

+  
+
+ + + + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/trash-posts.php b/newsportal/admin/trash-posts.php new file mode 100644 index 0000000..ec9c674 --- /dev/null +++ b/newsportal/admin/trash-posts.php @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + Newsportal | Manage Posts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Trashed Posts

+ +
+
+
+
+ + + +
+
+ + + + + + + + +
+ + +
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TitleCategorySubcategoryAction

No record found

+ +   + +
+
+
+
+
+ + + +
+ +
+ + + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/admin/unapprove-comment.php b/newsportal/admin/unapprove-comment.php new file mode 100644 index 0000000..a06f3a5 --- /dev/null +++ b/newsportal/admin/unapprove-comment.php @@ -0,0 +1,260 @@ + + + + + + | Manage Categories + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ +
+
+ + +
+
+
+

Manage Unapproved Comments

+ +
+
+
+
+ + + +
+
+ + + + + + + + + + +
+ + + + + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
# NameEmail IdCommentStatusPost / NewsPosting DateAction
+ + + + + + +  
+
+ + + + +
+ +
+ + +
+ + + + +
+
+
+
+ + +
+ + + + + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newsportal/category.php b/newsportal/category.php new file mode 100644 index 0000000..136ae8d --- /dev/null +++ b/newsportal/category.php @@ -0,0 +1,139 @@ + + + + + + + + + + + + + News Portal | Category Page + + + + + + + + + + + + + + + +
+ + + +
+ + +
+ + + +

News

+
+ <?php echo htmlentities($row['posttitle']);?> +
+

+ + Read More → +
+ +
+ + + + + + + + + + + + + +
+ + + +
+ + +
+ + + + + + + + + + + + + + + diff --git a/newsportal/contact-us.php b/newsportal/contact-us.php new file mode 100644 index 0000000..d14ca5f --- /dev/null +++ b/newsportal/contact-us.php @@ -0,0 +1,73 @@ + + + + + + + + + + + + News Portal | Contact us + + + + + + + + + + + + + + +
+ + +

+ +

+ + + + +
+ +
+ +

+
+
+ + + +
+ + + + + + + + + + + + diff --git a/newsportal/css/modern-business.css b/newsportal/css/modern-business.css new file mode 100644 index 0000000..1de0cc5 --- /dev/null +++ b/newsportal/css/modern-business.css @@ -0,0 +1,29 @@ +/*! + * Start Bootstrap - Modern Business (https://startbootstrap.com/template-overviews/modern-business) + * Copyright 2013-2017 Start Bootstrap + * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-logomodern-business-nav/blob/master/LICENSE) + */ + +body { + padding-top: 54px; +} + +@media (min-width: 992px) { + body { + padding-top: 56px; + } +} + +.carousel-item { + height: 65vh; + min-height: 300px; + background: no-repeat center center scroll; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} + +.portfolio-item { + margin-bottom: 30px; +} diff --git a/newsportal/gulpfile.js b/newsportal/gulpfile.js new file mode 100644 index 0000000..ffcaaf9 --- /dev/null +++ b/newsportal/gulpfile.js @@ -0,0 +1,41 @@ +var gulp = require('gulp'); +var browserSync = require('browser-sync').create(); +var pkg = require('./package.json'); + +// Copy third party libraries from /node_modules into /vendor +gulp.task('vendor', function() { + + // Bootstrap + gulp.src([ + './node_modules/bootstrap/dist/**/*', + '!./node_modules/bootstrap/dist/css/bootstrap-grid*', + '!./node_modules/bootstrap/dist/css/bootstrap-reboot*' + ]) + .pipe(gulp.dest('./vendor/bootstrap')) + + // jQuery + gulp.src([ + './node_modules/jquery/dist/*', + '!./node_modules/jquery/dist/core.js' + ]) + .pipe(gulp.dest('./vendor/jquery')) + +}) + +// Default task +gulp.task('default', ['vendor']); + +// Configure the browserSync task +gulp.task('browserSync', function() { + browserSync.init({ + server: { + baseDir: "./" + } + }); +}); + +// Dev task +gulp.task('dev', ['browserSync'], function() { + gulp.watch('./css/*.css', browserSync.reload); + gulp.watch('./*.html', browserSync.reload); +}); diff --git a/newsportal/images/logo.png b/newsportal/images/logo.png new file mode 100644 index 0000000..6d6ada3 Binary files /dev/null and b/newsportal/images/logo.png differ diff --git a/newsportal/images/usericon.png b/newsportal/images/usericon.png new file mode 100644 index 0000000..f7e5d30 Binary files /dev/null and b/newsportal/images/usericon.png differ diff --git a/newsportal/includes/config.php b/newsportal/includes/config.php new file mode 100644 index 0000000..734f094 --- /dev/null +++ b/newsportal/includes/config.php @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/newsportal/includes/footer.php b/newsportal/includes/footer.php new file mode 100644 index 0000000..ad2ea94 --- /dev/null +++ b/newsportal/includes/footer.php @@ -0,0 +1,4 @@ + +
+ © Developed by PHPGurukul. +
diff --git a/newsportal/includes/header.php b/newsportal/includes/header.php new file mode 100644 index 0000000..fa2f76d --- /dev/null +++ b/newsportal/includes/header.php @@ -0,0 +1,28 @@ + \ No newline at end of file diff --git a/newsportal/includes/leftsidebar.php b/newsportal/includes/leftsidebar.php new file mode 100644 index 0000000..8729539 --- /dev/null +++ b/newsportal/includes/leftsidebar.php @@ -0,0 +1,78 @@ +
+ + + +
\ No newline at end of file diff --git a/newsportal/includes/sidebar.php b/newsportal/includes/sidebar.php new file mode 100644 index 0000000..b1f7fbd --- /dev/null +++ b/newsportal/includes/sidebar.php @@ -0,0 +1,81 @@ +
+ + +
+
Search
+
+
+
+ + + + + + +
+
+
+ + +
+
Categories
+
+
+
+
    + + +
  • + +
  • + +
+
+ +
+
+
+ + +
+
Recent News
+
+
    + + +
  • + +
  • + +
+
+
+ + + +
+
Popular News
+
+
    + + +
  • + +
  • + +
+
+
+ +
diff --git a/newsportal/includes/topheader.php b/newsportal/includes/topheader.php new file mode 100644 index 0000000..601c5b1 --- /dev/null +++ b/newsportal/includes/topheader.php @@ -0,0 +1,56 @@ +
+ + +
+ + + + + + + + + + +
+ + + +
\ No newline at end of file diff --git a/newsportal/index.php b/newsportal/index.php new file mode 100644 index 0000000..6b7cc43 --- /dev/null +++ b/newsportal/index.php @@ -0,0 +1,120 @@ + + + + + + + + + + + + + News Portal | Home Page + + + + + + + + + + + + + + + +
+ + + +
+ + +
+ + + + +
+ <?php echo htmlentities($row['posttitle']);?> +
+

+

+ + +

+ + Read More → +
+ +
+ + + + + + + + + + +
+ + + +
+ + +
+ + + + + + + + + + + + + + + diff --git a/newsportal/js/contact_me.js b/newsportal/js/contact_me.js new file mode 100644 index 0000000..6e91590 --- /dev/null +++ b/newsportal/js/contact_me.js @@ -0,0 +1,75 @@ +$(function() { + + $("#contactForm input,#contactForm textarea").jqBootstrapValidation({ + preventSubmit: true, + submitError: function($form, event, errors) { + // additional error messages or events + }, + submitSuccess: function($form, event) { + event.preventDefault(); // prevent default submit behaviour + // get values from FORM + var name = $("input#name").val(); + var email = $("input#email").val(); + var phone = $("input#phone").val(); + var message = $("textarea#message").val(); + var firstName = name; // For Success/Failure Message + // Check for white space in name for Success/Fail message + if (firstName.indexOf(' ') >= 0) { + firstName = name.split(' ').slice(0, -1).join(' '); + } + $this = $("#sendMessageButton"); + $this.prop("disabled", true); // Disable submit button until AJAX call is complete to prevent duplicate messages + $.ajax({ + url: "././mail/contact_me.php", + type: "POST", + data: { + name: name, + phone: phone, + email: email, + message: message + }, + cache: false, + success: function() { + // Success message + $('#success').html("
"); + $('#success > .alert-success').html(""); + $('#success > .alert-success') + .append("Your message has been sent. "); + $('#success > .alert-success') + .append('
'); + //clear all fields + $('#contactForm').trigger("reset"); + }, + error: function() { + // Fail message + $('#success').html("
"); + $('#success > .alert-danger').html(""); + $('#success > .alert-danger').append($("").text("Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!")); + $('#success > .alert-danger').append('
'); + //clear all fields + $('#contactForm').trigger("reset"); + }, + complete: function() { + setTimeout(function() { + $this.prop("disabled", false); // Re-enable submit button when AJAX call is complete + }, 1000); + } + }); + }, + filter: function() { + return $(this).is(":visible"); + }, + }); + + $("a[data-toggle=\"tab\"]").click(function(e) { + e.preventDefault(); + $(this).tab("show"); + }); +}); + +/*When clicking on Full hide fail/success boxes */ +$('#name').focus(function() { + $('#success').html(''); +}); diff --git a/newsportal/js/jqBootstrapValidation.js b/newsportal/js/jqBootstrapValidation.js new file mode 100644 index 0000000..4e7087f --- /dev/null +++ b/newsportal/js/jqBootstrapValidation.js @@ -0,0 +1,912 @@ +/* jqBootstrapValidation + * A plugin for automating validation on Twitter Bootstrap formatted forms. + * + * v1.3.6 + * + * License: MIT - see LICENSE file + * + * http://ReactiveRaven.github.com/jqBootstrapValidation/ + */ + +(function( $ ){ + + var createdElements = []; + + var defaults = { + options: { + prependExistingHelpBlock: false, + sniffHtml: true, // sniff for 'required', 'maxlength', etc + preventSubmit: true, // stop the form submit event from firing if validation fails + submitError: false, // function called if there is an error when trying to submit + submitSuccess: false, // function called just before a successful submit event is sent to the server + semanticallyStrict: false, // set to true to tidy up generated HTML output + autoAdd: { + helpBlocks: true + }, + filter: function () { + // return $(this).is(":visible"); // only validate elements you can see + return true; // validate everything + } + }, + methods: { + init : function( options ) { + + var settings = $.extend(true, {}, defaults); + + settings.options = $.extend(true, settings.options, options); + + var $siblingElements = this; + + var uniqueForms = $.unique( + $siblingElements.map( function () { + return $(this).parents("form")[0]; + }).toArray() + ); + + $(uniqueForms).bind("submit", function (e) { + var $form = $(this); + var warningsFound = 0; + var $inputs = $form.find("input,textarea,select").not("[type=submit],[type=image]").filter(settings.options.filter); + $inputs.trigger("submit.validation").trigger("validationLostFocus.validation"); + + $inputs.each(function (i, el) { + var $this = $(el), + $controlGroup = $this.parents(".control-group").first(); + if ( + $controlGroup.hasClass("has-warning") + ) { + $controlGroup.removeClass("has-warning").addClass("has-error"); + warningsFound++; + } + }); + + $inputs.trigger("validationLostFocus.validation"); + + if (warningsFound) { + if (settings.options.preventSubmit) { + e.preventDefault(); + } + $form.addClass("has-error"); + if ($.isFunction(settings.options.submitError)) { + settings.options.submitError($form, e, $inputs.jqBootstrapValidation("collectErrors", true)); + } + } else { + $form.removeClass("has-error"); + if ($.isFunction(settings.options.submitSuccess)) { + settings.options.submitSuccess($form, e); + } + } + }); + + return this.each(function(){ + + // Get references to everything we're interested in + var $this = $(this), + $controlGroup = $this.parents(".control-group").first(), + $helpBlock = $controlGroup.find(".help-block").first(), + $form = $this.parents("form").first(), + validatorNames = []; + + // create message container if not exists + if (!$helpBlock.length && settings.options.autoAdd && settings.options.autoAdd.helpBlocks) { + $helpBlock = $('
'); + $controlGroup.find('.controls').append($helpBlock); + createdElements.push($helpBlock[0]); + } + + // ============================================================= + // SNIFF HTML FOR VALIDATORS + // ============================================================= + + // *snort sniff snuffle* + + if (settings.options.sniffHtml) { + var message = ""; + // --------------------------------------------------------- + // PATTERN + // --------------------------------------------------------- + if ($this.attr("pattern") !== undefined) { + message = "Not in the expected format"; + if ($this.data("validationPatternMessage")) { + message = $this.data("validationPatternMessage"); + } + $this.data("validationPatternMessage", message); + $this.data("validationPatternRegex", $this.attr("pattern")); + } + // --------------------------------------------------------- + // MAX + // --------------------------------------------------------- + if ($this.attr("max") !== undefined || $this.attr("aria-valuemax") !== undefined) { + var max = ($this.attr("max") !== undefined ? $this.attr("max") : $this.attr("aria-valuemax")); + message = "Too high: Maximum of '" + max + "'"; + if ($this.data("validationMaxMessage")) { + message = $this.data("validationMaxMessage"); + } + $this.data("validationMaxMessage", message); + $this.data("validationMaxMax", max); + } + // --------------------------------------------------------- + // MIN + // --------------------------------------------------------- + if ($this.attr("min") !== undefined || $this.attr("aria-valuemin") !== undefined) { + var min = ($this.attr("min") !== undefined ? $this.attr("min") : $this.attr("aria-valuemin")); + message = "Too low: Minimum of '" + min + "'"; + if ($this.data("validationMinMessage")) { + message = $this.data("validationMinMessage"); + } + $this.data("validationMinMessage", message); + $this.data("validationMinMin", min); + } + // --------------------------------------------------------- + // MAXLENGTH + // --------------------------------------------------------- + if ($this.attr("maxlength") !== undefined) { + message = "Too long: Maximum of '" + $this.attr("maxlength") + "' characters"; + if ($this.data("validationMaxlengthMessage")) { + message = $this.data("validationMaxlengthMessage"); + } + $this.data("validationMaxlengthMessage", message); + $this.data("validationMaxlengthMaxlength", $this.attr("maxlength")); + } + // --------------------------------------------------------- + // MINLENGTH + // --------------------------------------------------------- + if ($this.attr("minlength") !== undefined) { + message = "Too short: Minimum of '" + $this.attr("minlength") + "' characters"; + if ($this.data("validationMinlengthMessage")) { + message = $this.data("validationMinlengthMessage"); + } + $this.data("validationMinlengthMessage", message); + $this.data("validationMinlengthMinlength", $this.attr("minlength")); + } + // --------------------------------------------------------- + // REQUIRED + // --------------------------------------------------------- + if ($this.attr("required") !== undefined || $this.attr("aria-required") !== undefined) { + message = settings.builtInValidators.required.message; + if ($this.data("validationRequiredMessage")) { + message = $this.data("validationRequiredMessage"); + } + $this.data("validationRequiredMessage", message); + } + // --------------------------------------------------------- + // NUMBER + // --------------------------------------------------------- + if ($this.attr("type") !== undefined && $this.attr("type").toLowerCase() === "number") { + message = settings.builtInValidators.number.message; + if ($this.data("validationNumberMessage")) { + message = $this.data("validationNumberMessage"); + } + $this.data("validationNumberMessage", message); + } + // --------------------------------------------------------- + // EMAIL + // --------------------------------------------------------- + if ($this.attr("type") !== undefined && $this.attr("type").toLowerCase() === "email") { + message = "Not a valid email address"; + if ($this.data("validationValidemailMessage")) { + message = $this.data("validationValidemailMessage"); + } else if ($this.data("validationEmailMessage")) { + message = $this.data("validationEmailMessage"); + } + $this.data("validationValidemailMessage", message); + } + // --------------------------------------------------------- + // MINCHECKED + // --------------------------------------------------------- + if ($this.attr("minchecked") !== undefined) { + message = "Not enough options checked; Minimum of '" + $this.attr("minchecked") + "' required"; + if ($this.data("validationMincheckedMessage")) { + message = $this.data("validationMincheckedMessage"); + } + $this.data("validationMincheckedMessage", message); + $this.data("validationMincheckedMinchecked", $this.attr("minchecked")); + } + // --------------------------------------------------------- + // MAXCHECKED + // --------------------------------------------------------- + if ($this.attr("maxchecked") !== undefined) { + message = "Too many options checked; Maximum of '" + $this.attr("maxchecked") + "' required"; + if ($this.data("validationMaxcheckedMessage")) { + message = $this.data("validationMaxcheckedMessage"); + } + $this.data("validationMaxcheckedMessage", message); + $this.data("validationMaxcheckedMaxchecked", $this.attr("maxchecked")); + } + } + + // ============================================================= + // COLLECT VALIDATOR NAMES + // ============================================================= + + // Get named validators + if ($this.data("validation") !== undefined) { + validatorNames = $this.data("validation").split(","); + } + + // Get extra ones defined on the element's data attributes + $.each($this.data(), function (i, el) { + var parts = i.replace(/([A-Z])/g, ",$1").split(","); + if (parts[0] === "validation" && parts[1]) { + validatorNames.push(parts[1]); + } + }); + + // ============================================================= + // NORMALISE VALIDATOR NAMES + // ============================================================= + + var validatorNamesToInspect = validatorNames; + var newValidatorNamesToInspect = []; + + do // repeatedly expand 'shortcut' validators into their real validators + { + // Uppercase only the first letter of each name + $.each(validatorNames, function (i, el) { + validatorNames[i] = formatValidatorName(el); + }); + + // Remove duplicate validator names + validatorNames = $.unique(validatorNames); + + // Pull out the new validator names from each shortcut + newValidatorNamesToInspect = []; + $.each(validatorNamesToInspect, function(i, el) { + if ($this.data("validation" + el + "Shortcut") !== undefined) { + // Are these custom validators? + // Pull them out! + $.each($this.data("validation" + el + "Shortcut").split(","), function(i2, el2) { + newValidatorNamesToInspect.push(el2); + }); + } else if (settings.builtInValidators[el.toLowerCase()]) { + // Is this a recognised built-in? + // Pull it out! + var validator = settings.builtInValidators[el.toLowerCase()]; + if (validator.type.toLowerCase() === "shortcut") { + $.each(validator.shortcut.split(","), function (i, el) { + el = formatValidatorName(el); + newValidatorNamesToInspect.push(el); + validatorNames.push(el); + }); + } + } + }); + + validatorNamesToInspect = newValidatorNamesToInspect; + + } while (validatorNamesToInspect.length > 0) + + // ============================================================= + // SET UP VALIDATOR ARRAYS + // ============================================================= + + var validators = {}; + + $.each(validatorNames, function (i, el) { + // Set up the 'override' message + var message = $this.data("validation" + el + "Message"); + var hasOverrideMessage = (message !== undefined); + var foundValidator = false; + message = + ( + message + ? message + : "'" + el + "' validation failed " + ) + ; + + $.each( + settings.validatorTypes, + function (validatorType, validatorTemplate) { + if (validators[validatorType] === undefined) { + validators[validatorType] = []; + } + if (!foundValidator && $this.data("validation" + el + formatValidatorName(validatorTemplate.name)) !== undefined) { + validators[validatorType].push( + $.extend( + true, + { + name: formatValidatorName(validatorTemplate.name), + message: message + }, + validatorTemplate.init($this, el) + ) + ); + foundValidator = true; + } + } + ); + + if (!foundValidator && settings.builtInValidators[el.toLowerCase()]) { + + var validator = $.extend(true, {}, settings.builtInValidators[el.toLowerCase()]); + if (hasOverrideMessage) { + validator.message = message; + } + var validatorType = validator.type.toLowerCase(); + + if (validatorType === "shortcut") { + foundValidator = true; + } else { + $.each( + settings.validatorTypes, + function (validatorTemplateType, validatorTemplate) { + if (validators[validatorTemplateType] === undefined) { + validators[validatorTemplateType] = []; + } + if (!foundValidator && validatorType === validatorTemplateType.toLowerCase()) { + $this.data("validation" + el + formatValidatorName(validatorTemplate.name), validator[validatorTemplate.name.toLowerCase()]); + validators[validatorType].push( + $.extend( + validator, + validatorTemplate.init($this, el) + ) + ); + foundValidator = true; + } + } + ); + } + } + + if (! foundValidator) { + $.error("Cannot find validation info for '" + el + "'"); + } + }); + + // ============================================================= + // STORE FALLBACK VALUES + // ============================================================= + + $helpBlock.data( + "original-contents", + ( + $helpBlock.data("original-contents") + ? $helpBlock.data("original-contents") + : $helpBlock.html() + ) + ); + + $helpBlock.data( + "original-role", + ( + $helpBlock.data("original-role") + ? $helpBlock.data("original-role") + : $helpBlock.attr("role") + ) + ); + + $controlGroup.data( + "original-classes", + ( + $controlGroup.data("original-clases") + ? $controlGroup.data("original-classes") + : $controlGroup.attr("class") + ) + ); + + $this.data( + "original-aria-invalid", + ( + $this.data("original-aria-invalid") + ? $this.data("original-aria-invalid") + : $this.attr("aria-invalid") + ) + ); + + // ============================================================= + // VALIDATION + // ============================================================= + + $this.bind( + "validation.validation", + function (event, params) { + + var value = getValue($this); + + // Get a list of the errors to apply + var errorsFound = []; + + $.each(validators, function (validatorType, validatorTypeArray) { + if (value || value.length || (params && params.includeEmpty) || (!!settings.validatorTypes[validatorType].blockSubmit && params && !!params.submitting)) { + $.each(validatorTypeArray, function (i, validator) { + if (settings.validatorTypes[validatorType].validate($this, value, validator)) { + errorsFound.push(validator.message); + } + }); + } + }); + + return errorsFound; + } + ); + + $this.bind( + "getValidators.validation", + function () { + return validators; + } + ); + + // ============================================================= + // WATCH FOR CHANGES + // ============================================================= + $this.bind( + "submit.validation", + function () { + return $this.triggerHandler("change.validation", {submitting: true}); + } + ); + $this.bind( + [ + "keyup", + "focus", + "blur", + "click", + "keydown", + "keypress", + "change" + ].join(".validation ") + ".validation", + function (e, params) { + + var value = getValue($this); + + var errorsFound = []; + + $controlGroup.find("input,textarea,select").each(function (i, el) { + var oldCount = errorsFound.length; + $.each($(el).triggerHandler("validation.validation", params), function (j, message) { + errorsFound.push(message); + }); + if (errorsFound.length > oldCount) { + $(el).attr("aria-invalid", "true"); + } else { + var original = $this.data("original-aria-invalid"); + $(el).attr("aria-invalid", (original !== undefined ? original : false)); + } + }); + + $form.find("input,select,textarea").not($this).not("[name=\"" + $this.attr("name") + "\"]").trigger("validationLostFocus.validation"); + + errorsFound = $.unique(errorsFound.sort()); + + // Were there any errors? + if (errorsFound.length) { + // Better flag it up as a warning. + $controlGroup.removeClass("has-success has-error").addClass("has-warning"); + + // How many errors did we find? + if (settings.options.semanticallyStrict && errorsFound.length === 1) { + // Only one? Being strict? Just output it. + $helpBlock.html(errorsFound[0] + + ( settings.options.prependExistingHelpBlock ? $helpBlock.data("original-contents") : "" )); + } else { + // Multiple? Being sloppy? Glue them together into an UL. + $helpBlock.html("
  • " + errorsFound.join("
  • ") + "
" + + ( settings.options.prependExistingHelpBlock ? $helpBlock.data("original-contents") : "" )); + } + } else { + $controlGroup.removeClass("has-warning has-error has-success"); + if (value.length > 0) { + $controlGroup.addClass("has-success"); + } + $helpBlock.html($helpBlock.data("original-contents")); + } + + if (e.type === "blur") { + $controlGroup.removeClass("has-success"); + } + } + ); + $this.bind("validationLostFocus.validation", function () { + $controlGroup.removeClass("has-success"); + }); + }); + }, + destroy : function( ) { + + return this.each( + function() { + + var + $this = $(this), + $controlGroup = $this.parents(".control-group").first(), + $helpBlock = $controlGroup.find(".help-block").first(); + + // remove our events + $this.unbind('.validation'); // events are namespaced. + // reset help text + $helpBlock.html($helpBlock.data("original-contents")); + // reset classes + $controlGroup.attr("class", $controlGroup.data("original-classes")); + // reset aria + $this.attr("aria-invalid", $this.data("original-aria-invalid")); + // reset role + $helpBlock.attr("role", $this.data("original-role")); + // remove all elements we created + if (createdElements.indexOf($helpBlock[0]) > -1) { + $helpBlock.remove(); + } + + } + ); + + }, + collectErrors : function(includeEmpty) { + + var errorMessages = {}; + this.each(function (i, el) { + var $el = $(el); + var name = $el.attr("name"); + var errors = $el.triggerHandler("validation.validation", {includeEmpty: true}); + errorMessages[name] = $.extend(true, errors, errorMessages[name]); + }); + + $.each(errorMessages, function (i, el) { + if (el.length === 0) { + delete errorMessages[i]; + } + }); + + return errorMessages; + + }, + hasErrors: function() { + + var errorMessages = []; + + this.each(function (i, el) { + errorMessages = errorMessages.concat( + $(el).triggerHandler("getValidators.validation") ? $(el).triggerHandler("validation.validation", {submitting: true}) : [] + ); + }); + + return (errorMessages.length > 0); + }, + override : function (newDefaults) { + defaults = $.extend(true, defaults, newDefaults); + } + }, + validatorTypes: { + callback: { + name: "callback", + init: function ($this, name) { + return { + validatorName: name, + callback: $this.data("validation" + name + "Callback"), + lastValue: $this.val(), + lastValid: true, + lastFinished: true + }; + }, + validate: function ($this, value, validator) { + if (validator.lastValue === value && validator.lastFinished) { + return !validator.lastValid; + } + + if (validator.lastFinished === true) + { + validator.lastValue = value; + validator.lastValid = true; + validator.lastFinished = false; + + var rrjqbvValidator = validator; + var rrjqbvThis = $this; + executeFunctionByName( + validator.callback, + window, + $this, + value, + function (data) { + if (rrjqbvValidator.lastValue === data.value) { + rrjqbvValidator.lastValid = data.valid; + if (data.message) { + rrjqbvValidator.message = data.message; + } + rrjqbvValidator.lastFinished = true; + rrjqbvThis.data("validation" + rrjqbvValidator.validatorName + "Message", rrjqbvValidator.message); + // Timeout is set to avoid problems with the events being considered 'already fired' + setTimeout(function () { + rrjqbvThis.trigger("change.validation"); + }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst + } + } + ); + } + + return false; + + } + }, + ajax: { + name: "ajax", + init: function ($this, name) { + return { + validatorName: name, + url: $this.data("validation" + name + "Ajax"), + lastValue: $this.val(), + lastValid: true, + lastFinished: true + }; + }, + validate: function ($this, value, validator) { + if (""+validator.lastValue === ""+value && validator.lastFinished === true) { + return validator.lastValid === false; + } + + if (validator.lastFinished === true) + { + validator.lastValue = value; + validator.lastValid = true; + validator.lastFinished = false; + $.ajax({ + url: validator.url, + data: "value=" + value + "&field=" + $this.attr("name"), + dataType: "json", + success: function (data) { + if (""+validator.lastValue === ""+data.value) { + validator.lastValid = !!(data.valid); + if (data.message) { + validator.message = data.message; + } + validator.lastFinished = true; + $this.data("validation" + validator.validatorName + "Message", validator.message); + // Timeout is set to avoid problems with the events being considered 'already fired' + setTimeout(function () { + $this.trigger("change.validation"); + }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst + } + }, + failure: function () { + validator.lastValid = true; + validator.message = "ajax call failed"; + validator.lastFinished = true; + $this.data("validation" + validator.validatorName + "Message", validator.message); + // Timeout is set to avoid problems with the events being considered 'already fired' + setTimeout(function () { + $this.trigger("change.validation"); + }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst + } + }); + } + + return false; + + } + }, + regex: { + name: "regex", + init: function ($this, name) { + return {regex: regexFromString($this.data("validation" + name + "Regex"))}; + }, + validate: function ($this, value, validator) { + return (!validator.regex.test(value) && ! validator.negative) + || (validator.regex.test(value) && validator.negative); + } + }, + required: { + name: "required", + init: function ($this, name) { + return {}; + }, + validate: function ($this, value, validator) { + return !!(value.length === 0 && ! validator.negative) + || !!(value.length > 0 && validator.negative); + }, + blockSubmit: true + }, + match: { + name: "match", + init: function ($this, name) { + var element = $this.parents("form").first().find("[name=\"" + $this.data("validation" + name + "Match") + "\"]").first(); + element.bind("validation.validation", function () { + $this.trigger("change.validation", {submitting: true}); + }); + return {"element": element}; + }, + validate: function ($this, value, validator) { + return (value !== validator.element.val() && ! validator.negative) + || (value === validator.element.val() && validator.negative); + }, + blockSubmit: true + }, + max: { + name: "max", + init: function ($this, name) { + return {max: $this.data("validation" + name + "Max")}; + }, + validate: function ($this, value, validator) { + return (parseFloat(value, 10) > parseFloat(validator.max, 10) && ! validator.negative) + || (parseFloat(value, 10) <= parseFloat(validator.max, 10) && validator.negative); + } + }, + min: { + name: "min", + init: function ($this, name) { + return {min: $this.data("validation" + name + "Min")}; + }, + validate: function ($this, value, validator) { + return (parseFloat(value) < parseFloat(validator.min) && ! validator.negative) + || (parseFloat(value) >= parseFloat(validator.min) && validator.negative); + } + }, + maxlength: { + name: "maxlength", + init: function ($this, name) { + return {maxlength: $this.data("validation" + name + "Maxlength")}; + }, + validate: function ($this, value, validator) { + return ((value.length > validator.maxlength) && ! validator.negative) + || ((value.length <= validator.maxlength) && validator.negative); + } + }, + minlength: { + name: "minlength", + init: function ($this, name) { + return {minlength: $this.data("validation" + name + "Minlength")}; + }, + validate: function ($this, value, validator) { + return ((value.length < validator.minlength) && ! validator.negative) + || ((value.length >= validator.minlength) && validator.negative); + } + }, + maxchecked: { + name: "maxchecked", + init: function ($this, name) { + var elements = $this.parents("form").first().find("[name=\"" + $this.attr("name") + "\"]"); + elements.bind("click.validation", function () { + $this.trigger("change.validation", {includeEmpty: true}); + }); + return {maxchecked: $this.data("validation" + name + "Maxchecked"), elements: elements}; + }, + validate: function ($this, value, validator) { + return (validator.elements.filter(":checked").length > validator.maxchecked && ! validator.negative) + || (validator.elements.filter(":checked").length <= validator.maxchecked && validator.negative); + }, + blockSubmit: true + }, + minchecked: { + name: "minchecked", + init: function ($this, name) { + var elements = $this.parents("form").first().find("[name=\"" + $this.attr("name") + "\"]"); + elements.bind("click.validation", function () { + $this.trigger("change.validation", {includeEmpty: true}); + }); + return {minchecked: $this.data("validation" + name + "Minchecked"), elements: elements}; + }, + validate: function ($this, value, validator) { + return (validator.elements.filter(":checked").length < validator.minchecked && ! validator.negative) + || (validator.elements.filter(":checked").length >= validator.minchecked && validator.negative); + }, + blockSubmit: true + } + }, + builtInValidators: { + email: { + name: "Email", + type: "shortcut", + shortcut: "validemail" + }, + validemail: { + name: "Validemail", + type: "regex", + regex: "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\\.[A-Za-z]{2,4}", + message: "Not a valid email address" + }, + passwordagain: { + name: "Passwordagain", + type: "match", + match: "password", + message: "Does not match the given password" + }, + positive: { + name: "Positive", + type: "shortcut", + shortcut: "number,positivenumber" + }, + negative: { + name: "Negative", + type: "shortcut", + shortcut: "number,negativenumber" + }, + number: { + name: "Number", + type: "regex", + regex: "([+-]?\\\d+(\\\.\\\d*)?([eE][+-]?[0-9]+)?)?", + message: "Must be a number" + }, + integer: { + name: "Integer", + type: "regex", + regex: "[+-]?\\\d+", + message: "No decimal places allowed" + }, + positivenumber: { + name: "Positivenumber", + type: "min", + min: 0, + message: "Must be a positive number" + }, + negativenumber: { + name: "Negativenumber", + type: "max", + max: 0, + message: "Must be a negative number" + }, + required: { + name: "Required", + type: "required", + message: "This is required" + }, + checkone: { + name: "Checkone", + type: "minchecked", + minchecked: 1, + message: "Check at least one option" + } + } + }; + + var formatValidatorName = function (name) { + return name + .toLowerCase() + .replace( + /(^|\s)([a-z])/g , + function(m,p1,p2) { + return p1+p2.toUpperCase(); + } + ) + ; + }; + + var getValue = function ($this) { + // Extract the value we're talking about + var value = $this.val(); + var type = $this.attr("type"); + if (type === "checkbox") { + value = ($this.is(":checked") ? value : ""); + } + if (type === "radio") { + value = ($('input[name="' + $this.attr("name") + '"]:checked').length > 0 ? value : ""); + } + return value; + }; + + function regexFromString(inputstring) { + return new RegExp("^" + inputstring + "$"); + } + + /** + * Thanks to Jason Bunting via StackOverflow.com + * + * http://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string#answer-359910 + * Short link: http://tinyurl.com/executeFunctionByName + **/ + function executeFunctionByName(functionName, context /*, args*/) { + var args = Array.prototype.slice.call(arguments).splice(2); + var namespaces = functionName.split("."); + var func = namespaces.pop(); + for(var i = 0; i < namespaces.length; i++) { + context = context[namespaces[i]]; + } + return context[func].apply(this, args); + } + + $.fn.jqBootstrapValidation = function( method ) { + + if ( defaults.methods[method] ) { + return defaults.methods[method].apply( this, Array.prototype.slice.call( arguments, 1 )); + } else if ( typeof method === 'object' || ! method ) { + return defaults.methods.init.apply( this, arguments ); + } else { + $.error( 'Method ' + method + ' does not exist on jQuery.jqBootstrapValidation' ); + return null; + } + + }; + + $.jqBootstrapValidation = function (options) { + $(":input").not("[type=image],[type=submit]").jqBootstrapValidation.apply(this,arguments); + }; + +})( jQuery ); diff --git a/newsportal/news-details.php b/newsportal/news-details.php new file mode 100644 index 0000000..1b947fe --- /dev/null +++ b/newsportal/news-details.php @@ -0,0 +1,200 @@ +alert('comment successfully submit. Comment will be display after admin review ');"; + unset($_SESSION['token']); +else : + echo ""; + +endif; + +} +} +} +$postid=intval($_GET['nid']); + + $sql = "SELECT viewCounter FROM tblposts WHERE id = '$postid'"; + $result = $con->query($sql); + + if ($result->num_rows > 0) { + while($row = $result->fetch_assoc()) { + $visits = $row["viewCounter"]; + $sql = "UPDATE tblposts SET viewCounter = $visits+1 WHERE id ='$postid'"; + $con->query($sql); + + } + } else { + echo "no results"; + } + + + +?> + + + + + + + + + + + + News Portal | Home Page + + + + + + + + + + + + + + + +
+ + + +
+ + +
+ + + + +
+ +
+

+ + + + + + +

+ + Posted by on | + + Last Updated by on

+ +

Share: Facebook | +Twitter | +Whatsapp | +Linkedin Visits: +

+
+ + <?php echo htmlentities($row['posttitle']);?> + +

+ +
+ +
+ + + + + + + +
+ + + +
+ + + +
+
+
+
Leave a Comment:
+
+
+ +
+ +
+ +
+ +
+ + +
+ +
+ +
+
+
+ + + + +
+ +
+

+ at +
+ +
+
+ + +
+
+
+ + + + + + + + + + + + diff --git a/newsportal/plugins/multiselect/css/multi-select.css b/newsportal/plugins/multiselect/css/multi-select.css new file mode 100644 index 0000000..8b3bb5e --- /dev/null +++ b/newsportal/plugins/multiselect/css/multi-select.css @@ -0,0 +1,93 @@ +.ms-container{ + background: transparent url('../img/switch.png') no-repeat 50% 50%; + width: 370px; +} + +.ms-container:after{ + content: "."; + display: block; + height: 0; + line-height: 0; + font-size: 0; + clear: both; + min-height: 0; + visibility: hidden; +} + +.ms-container .ms-selectable, .ms-container .ms-selection{ + background: #fff; + color: #555555; + float: left; + width: 45%; +} +.ms-container .ms-selection{ + float: right; +} + +.ms-container .ms-list{ + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; + border: 1px solid #ccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + position: relative; + height: 200px; + padding: 0; + overflow-y: auto; +} + +.ms-container .ms-list.ms-focus{ + border-color: rgba(82, 168, 236, 0.8); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + outline: 0; + outline: thin dotted \9; +} + +.ms-container ul{ + margin: 0; + list-style-type: none; + padding: 0; +} + +.ms-container .ms-optgroup-container{ + width: 100%; +} + +.ms-container .ms-optgroup-label{ + margin: 0; + padding: 5px 0px 0px 5px; + cursor: pointer; + color: #999; +} + +.ms-container .ms-selectable li.ms-elem-selectable, +.ms-container .ms-selection li.ms-elem-selection{ + border-bottom: 1px #eee solid; + padding: 2px 10px; + color: #555; + font-size: 14px; +} + +.ms-container .ms-selectable li.ms-hover, +.ms-container .ms-selection li.ms-hover{ + cursor: pointer; + color: #fff; + text-decoration: none; + background-color: #08c; +} + +.ms-container .ms-selectable li.disabled, +.ms-container .ms-selection li.disabled{ + background-color: #eee; + color: #aaa; + cursor: text; +} \ No newline at end of file diff --git a/newsportal/plugins/multiselect/img/multiple-arrow.png b/newsportal/plugins/multiselect/img/multiple-arrow.png new file mode 100644 index 0000000..fed8d0a Binary files /dev/null and b/newsportal/plugins/multiselect/img/multiple-arrow.png differ diff --git a/newsportal/plugins/multiselect/img/switch.png b/newsportal/plugins/multiselect/img/switch.png new file mode 100644 index 0000000..7accb6a Binary files /dev/null and b/newsportal/plugins/multiselect/img/switch.png differ diff --git a/newsportal/plugins/multiselect/js/jquery.multi-select.js b/newsportal/plugins/multiselect/js/jquery.multi-select.js new file mode 100644 index 0000000..1c2b124 --- /dev/null +++ b/newsportal/plugins/multiselect/js/jquery.multi-select.js @@ -0,0 +1,528 @@ +/* +* MultiSelect v0.9.12 +* Copyright (c) 2012 Louis Cuny +* +* This program is free software. It comes without any warranty, to +* the extent permitted by applicable law. You can redistribute it +* and/or modify it under the terms of the Do What The Fuck You Want +* To Public License, Version 2, as published by Sam Hocevar. See +* http://sam.zoy.org/wtfpl/COPYING for more details. +*/ + +!function ($) { + + "use strict"; + + + /* MULTISELECT CLASS DEFINITION + * ====================== */ + + var MultiSelect = function (element, options) { + this.options = options; + this.$element = $(element); + this.$container = $('
', { 'class': "ms-container" }); + this.$selectableContainer = $('
', { 'class': 'ms-selectable' }); + this.$selectionContainer = $('
', { 'class': 'ms-selection' }); + this.$selectableUl = $('