CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other
Showing posts with label MAGENTO TUTORIALS. Show all posts
Showing posts with label MAGENTO TUTORIALS. Show all posts

10 March, 2022

6 Steps to Install Magento 2.4.2 on XAMPP Windows Using

 Programing Coderfunda     March 10, 2022     Magento 2, MAGENTO TUTORIALS     No comments   

 

Install Magento 2.4 in Windows 10 using composer and command line with Elasticsearch


In this post we will learn, download the Magento 2.4 using composer and install the Magento 2.4 software from the command line on localhost windows 10.

Prerequisites

Before you continue, you must do the following:

  • System Requirements.
  • Install Composer
  • Get authentication keys for the Magento code repository.

PHP Configuration

Edit php.ini file for increase memory limit and enable required extensions. You can required extensions from this link System Requirements. In xampp server maximum extensions enable.

Also need to change below in php.ini:

Increase memory limit

memory_limit=2G

Enable below extensions by remove semicolon(;) from begining of the line.

extension=intl
extension=soap
extension=sockets
extension=xsl


Get Authentication Keys

Get authentication keys form Magento officeal website after login. After login you can get Access Keys, public key and private key. Public key is username and private key is password. We will use this creadentials for download Magento using composer.

Install Composer

Download compser version 1.10.20 from this link Install Composer. After download composer.phar file paste there you want download Magento.

For example, we can paste composer.phar file in c:\xampp\htdocs

Download Magento 2.4 Using Compser

Now download Magento 2.4 using composer using below command.


php composer.phar create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <project-folder-name>
Copy

For example


C:\xampp\htdocs>php composer.phar create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento241
Copy

Note: After download magento create zip file for creating next project or reintall magento. Because Magento download via composer is taking 15-20 min.

Install Elasticsearch

Download Elasticsearch according your operating system. In this lesson we have used Windows 10. After download Elasticsearch zip file and paste in C drive and unzip this zip file. And run below command.


c:\elasticsearch-7.10.2>bin\elasticsearch.bat
Copy

After run Elasticsearch, we can check url http://localhost:9200 in browser then we can see output like below.


Create Database

Create database for your project. In this lesson we have created database magento241

Install Magento 2.4 via Command Line

Now we will install Magento 2.4 via command line on windows localhost. If you want to install Magento on localhost then need to changes in file vendor\magento\framework\Image\Adapter\Gd2.php like below code.


private function validateURLScheme(string $filename) : bool
{
	$allowed_schemes = ['ftp', 'ftps', 'http', 'https'];
	$url = parse_url($filename);
	if ($url && isset($url['scheme']) && !in_array($url['scheme'], $allowed_schemes)) {
		return false;
	}

	return true;
}
Copy

Replace with


private function validateURLScheme(string $filename) : bool
{
	$allowed_schemes = ['ftp', 'ftps', 'http', 'https'];
	$url = parse_url($filename);
	if ($url && isset($url['scheme']) && !in_array($url['scheme'], $allowed_schemes) && !file_exists($filename)) {
		return false;
	}

	return true;
}
Copy

After above changes then run below command for install Magento 2.4

php bin/magento setup:install --base-url=http://localhost/magento241/ --db-host=localhost --db-name=magento241 --db-user=root --db-password= --admin-firstname=Amit --admin-lastname=Kumar --admin-email=user@example.com --admin-user=admin --admin-password=admin123 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1 --search-engine=elasticsearch7 --elasticsearch-host=localhost --elasticsearch-port=9200


Fixed Admin Login Issue

After installatin if showing black page on admin login page then need changes in file vendor\magento\framework\View\Element\Template\File\Validator.php like below code.


protected function isPathInDirectories($path, $directories)
{
    if (!is_array($directories)) {
        $directories = (array)$directories;
    }
    $realPath = $this->fileDriver->getRealPath($path);
    foreach ($directories as $directory) {
        if (0 === strpos($realPath, $directory)) {
            return true;
        }
    }
    return false;
}
Copy

Replace with


protected function isPathInDirectories($path, $directories)
{
    if (!is_array($directories)) {
        $directories = (array)$directories;
    }
    $realPath = $this->fileDriver->getRealPath($path);
    foreach ($directories as $directory) {
      // add below line for fix this issue
      $directory = $this->fileDriver->getRealPath($directory);
        if (0 === strpos($realPath, $directory)) {
            return true;
        }
    }
    return false;
}
Copy

Disable TwoFactorAuth Module

In localhost you can disable module Magento_TwoFactorAuth via running below command.


php bin/magento module:disable Magento_TwoFactorAuth
Copy

Fixed Icon and Images Loading Issue

If images and icons is not loading then run below commands


php bin/magento setup:static-content:deploy -f
php bin/magento indexer:reindex
php bin/magento cache:flush
Copy

I hope after follow the above steps, Magento 2.4 installation will be success!!

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

How to get single record from collection in Magento 2

 Programing Coderfunda     March 10, 2022     Magento 2, MAGENTO TUTORIALS     No comments   

 

How to get single record from collection in Magento 2



Create View.php Controller Action

Rsgitech\News\Controller\Index\View.php



<?php
namespace Rsgitech\News\Controller\Index;

class View extends \Magento\Framework\App\Action\Action
{
	protected $pageFactory;
	
	public function __construct(
		\Magento\Framework\App\Action\Context $context,
		\Magento\Framework\View\Result\PageFactory $pageFactory)
	{
		$this->pageFactory = $pageFactory;
		return parent::__construct($context);
	}

	public function execute()
	{
		return $this->pageFactory->create();
	}
}
?>
Copy

Create ViewNews.php Block

Rsgitech\News\Block\ViewNews.php


<?php
namespace Rsgitech\News\Block;

Class ViewNews extends \Magento\Framework\View\Element\Template
{
	protected $allNewsFactory;
	
	public function __construct(
		\Magento\Framework\View\Element\Template\Context $context,
		\Rsgitech\News\Model\AllnewsFactory $allNewsFactory
	){
		parent::__construct($context);
		$this->allNewsFactory = $allNewsFactory;
	}
	
	public function getNews()
	{
		$id = $this->getRequest()->getParam('id');
		$news = $this->allNewsFactory->create()->load($id);
		
		return $news;
	}
	
	protected function _prepareLayout(){
		
		parent::_prepareLayout();
		
		$news = $this->getNews();
		$this->pageConfig->getTitle()->set($news->getTitle());
		
        return $this;
	}
}
?>
Copy

Create news_index_view.xml Layout

Rsgitech\News\view\frontend\layout\news_index_view.xml



<?xml version="1.0"?>

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
		<css src="Rsgitech_News::css/rsgitech.news.css" />
	</head>
	<body>
        <referenceContainer name="content">
            <block class="Rsgitech\News\Block\ViewNews" name="view_news" template="Rsgitech_News::view.phtml" />
        </referenceContainer>
    </body>
</page>
Copy

Create Template view.phtml File

Rsgitech\News\view\frontend\templates\view.phtml


<div class="rsgitech-news">
	<?php $news = $this->getNews() ?>
	<div class="rsg-news-time"><?php echo $news->getCreatedAt() ?></div>
	<div class="rsg-news-desc"><?php echo $news->getDescription() ?></div>
</div>
Copy

Then run below commands


php bin/magento setup:upgrade
php bin/magetno setup:static-content:deploy
php bin/magento cache:flush
Copy

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

How to show collection on frontend with pagination in Magento 2

 Programing Coderfunda     March 10, 2022     Magento 2, MAGENTO TUTORIALS     No comments   

 

How to show collection on frontend with pagination in Magento 2


Create routes.xml

Rsgitech\News\etc\frontend\routes.xml

<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="standard">
        <route id="news" frontName="news">
            <module name="Rsgitech_News" />
        </route>
    </router>
</config>
Copy

Create Index.php Controller Action

Rsgitech\News\Controller\Index\Index.php


<?php
namespace Rsgitech\News\Controller\Index;

class Index extends \Magento\Framework\App\Action\Action
{
	protected $pageFactory;
	
	public function __construct(
		\Magento\Framework\App\Action\Context $context,
		\Magento\Framework\View\Result\PageFactory $pageFactory)
	{
		$this->pageFactory = $pageFactory;
		return parent::__construct($context);
	}

	public function execute()
	{
		return $this->pageFactory->create();
	}
}
?>
Copy

Create LinkNews.php Block

Rsgitech\News\Block\LinkNews.php

Get news link from system configuration


<?php
namespace Rsgitech\News\Block;

Class LinkNews extends \Magento\Framework\View\Element\Template
{
	protected $dataHelper;
	
	public function __construct(
		\Magento\Framework\View\Element\Template\Context $context,
		\Rsgitech\News\Helper\Data $dataHelper
	){
		parent::__construct($context);
		$this->dataHelper = $dataHelper;
	}
	
	public function getNewsLink()
	{
		$newsLink = $this->dataHelper->getStorefrontConfig('news_link');
		
		return $newsLink;
	}
	
	public function getBaseUrl()
	{
		return $this->_storeManager->getStore()->getBaseUrl();
	}
}
?>
Copy

Create link.phtml Template File

Rsgitech\News\view\frontend\templates\link.phtml




<li class="nav item">
	<a href="<?php echo $block->getBaseUrl() ?>news/index/index"><?php echo $block->getNewsLink(); ?></a>
</li>
Copy

Create default.xml Layout

Rsgitech\News\view\frontend\layout\default.xml

News link show in footer


<?xml version="1.0"?>

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="footer_links">
			<block class="Rsgitech\News\Block\LinkNews" name="news_link" template="Rsgitech_News::link.phtml" />
        </referenceBlock>
    </body>
</page>
Copy

Create ListNews.php Block

Rsgitech\News\Block\ListNews.php


<?php
namespace Rsgitech\News\Block;

Class ListNews extends \Magento\Framework\View\Element\Template
{
	protected $allNewsFactory;
	
	public function __construct(
		\Magento\Framework\View\Element\Template\Context $context,
		\Rsgitech\News\Model\AllnewsFactory $allNewsFactory
	){
		parent::__construct($context);
		$this->allNewsFactory = $allNewsFactory;
	}
	
	public function getBaseUrl()
	{
		return $this->_storeManager->getStore()->getBaseUrl();
	}
	
	public function getListNews()
	{
		$page = ($this->getRequest()->getParam('p'))? $this->getRequest()->getParam('p') : 1;
		$limit = ($this->getRequest()->getParam('limit'))? $this->getRequest()->getParam('limit') : 2;
		
		$collection = $this->allNewsFactory->create()->getCollection();
		$collection->addFieldToFilter('status',1);
		$collection->setPageSize($limit);
		$collection->setCurPage($page);
	
		return $collection;
	}
	
	protected function _prepareLayout(){
		parent::_prepareLayout();
		$this->pageConfig->getTitle()->set(__('Latest News'));
		
		if ($this->getListNews()){
			$pager = $this->getLayout()->createBlock('Magento\Theme\Block\Html\Pager', 'rsgitech.news.pager')
									->setAvailableLimit(array(2=>2,10=>10,15=>15,20=>20))
									->setShowPerPage(true)
									->setCollection($this->getListNews());

			$this->setChild('pager', $pager);

			$this->getListNews()->load();
		}
        return $this;
	}
	
	public function getPagerHtml()
	{
		return $this->getChildHtml('pager');
	}
}
?>
Copy

Create listnews.phtml Template

Rsgitech\News\view\frontend\templates\listnews.phtml


<div class="rsgitech-news">
	<?php $allnews = $this->getListNews() ?>
	<?php if($allnews && count($allnews)): ?>
		<?php foreach($allnews as $news): ?>
			<div class="rsg-news-list">
				<div class="rsg-news-title">
					<a href="#">
						<?php echo $news->getTitle() ?>
					</a>
					</div>
				<div class="rsg-news-time"><?php echo $news->getCreatedAt() ?></div>
				<div class="rsg-news-desc"><?php echo $news->getDescription() ?></div>
			</div>
		<?php endforeach; ?>
		
		<?php if($this->getPagerHtml()): ?>
			<?php echo $this->getPagerHtml(); ?>
		<?php endif; ?>
	<?php else: ?>
		<div class="rsgitech-no-records">
			<?php echo __('News not available'); ?>
		</div>
	<?php endif; ?>
</div>
Copy

Create news_index_index.xml Layout

Rsgitech\News\view\frontend\layout\news_index_index.xml

Create news_index_index.xml for display news listing



<?xml version="1.0"?>

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
		<css src="Rsgitech_News::css/rsgitech.news.css" />
	</head>
	<body>
        <referenceContainer name="content">
            <block class="Rsgitech\News\Block\ListNews" name="list_news" template="Rsgitech_News::listnews.phtml" />
        </referenceContainer>
    </body>
</page>
Copy

Create rsgitech.news.css CSS file

Rsgitech\News\view\frontend\web\css\rsgitech.news.css

Create css file for design


.rsgitech-news .rsg-news-list {
	padding: 15px;
	border: 1px solid #ccc;
	display: block;
	margin-top: -1px;
}
.rsgitech-news .rsg-news-list:nth-child(even){
	background-color:#f1f1f1;
}
.rsgitech-news .rsg-news-list:nth-child(odd){
	background-color:#FAFAFA;
}
.rsgitech-news .rsg-news-title {
	font-weight:bold;
	font-size:16px;
	margin-bottom:5px;
}
.rsgitech-news .rsg-news-time {
	font-size:14px;
	color:#666;
	font-style:italic;
}
.rsgitech-news .pager {
	margin-top:20px;
	display:flex;
}
.rsgitech-news .toolbar-amount {
	margin-right:20px;
}
.rsgitech-news .rsg-news-desc {
	margin-top:15px;
}
.rsgitech-news a:hover {
	text-decoration:none;
}
Copy

Then run below commands


php bin/magento setup:upgrade
php bin/magetno setup:static-content:deploy
php bin/magento cache:flush
Copy


Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Older Posts Home

Meta

Popular Posts

  • Write API Integrations in Laravel and PHP Projects with Saloon
    Write API Integrations in Laravel and PHP Projects with Saloon Saloon  is a Laravel/PHP package that allows you to write your API integratio...
  • Credit card validation in laravel
      Validation rules for credit card using laravel-validation-rules/credit-card package in laravel Install package laravel-validation-rules/cr...
  • iOS 17 Force Screen Rotation not working on iPAD only
    I have followed all the links on Google and StackOverFlow, unfortunately, I could not find any reliable solution Specifically for iPad devic...
  • Fast Excel Package for Laravel
      Fast Excel is a Laravel package for importing and exporting spreadsheets. It provides an elegant wrapper around Spout —a PHP package to ...
  • C++ in Hindi Introduction
    C ++ का परिचय C ++ एक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज है। C ++ को Bjarne Stroustrup द्वारा विकसित किया गया था। C ++ में आने से पह...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

Loading...

Laravel News

Loading...

Copyright © CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda