Pots especificar filtre: LARAVEL, o cercar per paraules
aplicar css al html
El CSS es pot afegir als documents HTML de 3 maneres:
1.-En línia : utilitzant style atribut dins dels elements HTML
style="background-image: url('img/login.png');"
<style type="text/css">
li {
font-size: 1.2rem;
}
</style>
<section class="module p-b-0 bg-dark" id="pagines">
2.-Interna: utilitzant un style element a la head seccio
3.-Extern: utilitzant un element per enllaçar a un fitxer CSS extern.
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
/**
* Migration auto-generated by TablePlus 4.10.1(202)
* @author https://tableplus.com
* @source https://github.com/TablePlus/tabledump
*/
class CreateCodesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('codes', function (Blueprint $table) {
$table->integer('id')->unsigned()->autoIncrement();
$table->string('nom', 255);
$table->string('categoria', 255);
$table->string('tags', 255);
$table->text('descripcio')->nullable()->default(NULL);
$table->longtext('blockcode');
$table->string('txt', 255)->nullable()->default(NULL);
$table->string('youtube', 255)->nullable()->default(NULL);
$table->string('url', 255)->nullable()->default(NULL);
$table->timestamp('updated_at')->nullable()->default(NULL);
$table->timestamp('created_at')->nullable()->default(NULL);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('codes');
}
}
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
/**
* Migration auto-generated by TablePlus 4.10.1(202)
* @author https://tableplus.com
* @source https://github.com/TablePlus/tabledump
*/
class CreateObjectiusTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('objectius', function (Blueprint $table) {
$table->integer('id')->unsigned()->autoIncrement();
$table->string('nom', 255);
$table->text('descripcio');
$table->string('status', 255);
$table->string('urlsolucio', 255)->nullable()->default(NULL);
$table->timestamp('created_at')->nullable()->default(NULL);
$table->timestamp('updated_at')->nullable()->default(NULL);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('objectius');
}
}
previament tinc que tenir instal.lat:
composer require doctrine/dbal
filament">
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
/**
* Migration auto-generated by TablePlus 4.10.1(202)
* @author https://tableplus.com
* @source https://github.com/TablePlus/tabledump
*/
class CreatePeopleTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('people', function (Blueprint $table) {
$table->integer('id')->unsigned()->autoIncrement();
$table->string('nom', 255);
$table->string('img', 255);
$table->string('categoria', 255);
$table->string('ranking', 255)->nullable()->default(NULL);
$table->string('folder', 255)->nullable()->default(NULL);
$table->string('ins', 255)->nullable()->default(NULL);
$table->string('face', 255)->nullable()->default(NULL);
$table->string('tiktok', 255)->nullable()->default(NULL);
$table->string('youtube', 255)->nullable()->default(NULL);
$table->string('video', 255)->nullable()->default(NULL);
$table->string('mp3', 255)->nullable()->default(NULL);
$table->timestamp('created_at')->nullable()->default(NULL);
$table->timestamp('updated_at')->nullable()->default(NULL);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('people');
}
}
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
/**
* Migration auto-generated by TablePlus 4.10.1(202)
* @author https://tableplus.com
* @source https://github.com/TablePlus/tabledump
*/
class CreateToolsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tools', function (Blueprint $table) {
$table->integer('id')->unsigned()->autoIncrement();
$table->string('nom', 255);
$table->text('descripcio')->nullable()->default(NULL);
$table->longtext('body');
$table->string('categoria', 255);
$table->string('img', 255);
$table->string('img1', 255)->nullable()->default(NULL);
$table->string('img2', 255)->nullable()->default(NULL);
$table->string('youtube', 255)->nullable()->default(NULL);
$table->string('codi', 255)->nullable()->default(NULL);
$table->string('slug', 255)->nullable()->default(NULL);
$table->timestamp('created_at')->nullable()->default(NULL);
$table->timestamp('updated_at')->nullable()->default(NULL);
$table->string('web', 255)->nullable()->default(NULL);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tools');
}
}
He inclos dues variacions: 1.- uk-active que ensenya un determinat filtre. 2.- he tret el filtre a laravel subtituït per link a la seva propia gal.leria.
<ul class="uk-subnav uk-subnav-pill">
<li data-uk-filter-control=""><a href="#">Show All</a></li>
<li class="uk-active" data-uk-filter-control=".cap"><a href="#">cap</a></li>
<li data-uk-filter-control=".github"><a href="#">github</a></li>
<li data-uk-filter-control=".servidor"><a href="#">servidor</a></li>
<li ><a href="/laravel">laravel</a></li>
<li data-uk-filter-control=".llibreries"><a href="#">llibreries</a></li>
<li data-uk-filter-control=".php"><a href="#">php</a></li>
<li data-uk-filter-control=".html"><a href="#">html</a></li>
<li data-uk-filter-control=".css"><a href="#">css</a></li>
<li data-uk-filter-control=".voyager"><a href="#">voyager</a></li>
<li data-uk-filter-control=".filament"><a href="#">filament</a></li>
</ul>
Aguanta tot el meu web i ha estat un gran descobriment!. Al front theme uikit kick-off amb coses de per aqui i per alla i laravel voyager al back-end, foreach a la base de dades i presentades amb datatables.
composer global require laravel/installer
laravel new projecte
Laravel és un marc d'aplicacions web amb una sintaxi expressiva i elegant. Un marc web proporciona una estructura i un punt de partida per crear la vostra aplicació, cosa que us permet centrar-vos a crear alguna cosa sorprenent mentre fem els detalls.
composer create-project laravel/laravel proyecto "8.*"
al fitxer routes\web.pp
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('inici');
});
Route::get('/tools', function () {
return view('tools');
});
Route::get('/codis', function () {
return view('codis');
});
Route::get('/webs', function () {
return view('webs');
});
Route::group(['prefix' => 'admin'], function () {
Voyager::routes();
});
exemple per la creacio de la taula tools ("php artisan make:migration create_tools_table")
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateToolsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tools', function (Blueprint $table) {
$table->id();
$table->string('nom');
$table->string('descripcio');
$table->text('body');
$table->string('categoria');
$table->string('img');
$table->string('img1');
$table->string('img2');
$table->string('web');
$table->string('youtube');
$table->string('codi');
$table->string('slug')->unique();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tools');
}
}
Les vistes a Laravel són la part pública que l'usuari del nostre sistema podrà veure, s'escriuen en HTML juntament amb un motor de plantilles anomenat Blade . Les vistes es troben ubicades a la carpeta resources/views/
1-<!-- Stored in resources/views/layouts/app.blade.php -->
<!-- el codi html del header nav -->
@yield('content')
<!-- el codi html del footer -->
2-<!-- Stored in resources/views/pagina.blade.php -->
@extends('layouts.Appestudi')
@section('title', 'Gal.leria de webs')
@section('content')
<!-- el codi html del contingut -->
@stop
Per crear un controlador utilitzarem les ordres d' artisan , pel nostre exemple crearem el controlador “AlumnoController”, pots fer servir l'opció –resource , aquest recurs crearà les funcions bàsiques de maneig de les sol·licituds HTTP com a funcions d'index, create, store, show, edit, update i destroy.
php artisan make:controller CodesController --resource
El middleware ofereix un mecanisme convenient per inspeccionar i filtrar les sol·licituds HTTP que entren a la vostra aplicació.
Per exemple, Laravel inclou un middleware que verifica que l'usuari de la vostra aplicació està autenticat. Si l'usuari no està autenticat, el programari intermedi redirigirà l'usuari a la pantalla d'inici de sessió de l'aplicació. Tanmateix, si l'usuari s'autentica, el programari intermedi permetrà que la sol·licitud continuï més enllà de l'aplicació.
Es pot escriure programari intermediari addicional per realitzar una varietat de tasques a més de l'autenticació. Per exemple, un middleware de registre pot registrar totes les sol·licituds entrants a la vostra aplicació. Hi ha diversos middleware inclosos al marc de Laravel, inclòs middleware per a l'autenticació i la protecció CSRF. Tots aquests middleware es troben al app/Http/Middlewaredirectori.
php artisan make:middleware EnsureTokenIsValid
<?php
namespace App\Http\Middleware;
use Closure;
class EnsureTokenIsValid
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->input('token') !== 'my-secret-token') {
return redirect('home');
}
return $next($request);
}
}
bases de dades en laravel-Database: query builder
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
class UserController extends Controller
{
/**
* Show a list of all of the application's users.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$users = DB::select('select * from users where active = ?', [1]);
return view('user.index', ['users' => $users]);
}
}
Artisan és la interfície de línia d'ordres inclosa amb Laravel. Artisan existeix a l'arrel de la vostra aplicació com a artisanscript i proporciona una sèrie d'ordres útils que us poden ajudar mentre creeu la vostra aplicació. Per veure una llista de totes les ordres d'Artisan disponibles, podeu utilitzar list
php artisan list
php artisan help migrate
php artisan tinker
Generating Model Classes
Per començar, creem un model Eloqüent. Els models normalment viuen al app\Models directori i amplien la Illuminate\Database\Eloquent\Modelclasse. Podeu utilitzar l' make:model ordre Artisan per generar un model nou:
php artisan make:model Flight
php artisan make:model Flight --migration
# Generate a model and a FlightFactory class...
php artisan make:model Flight --factory
php artisan make:model Flight -f
# Generate a model and a FlightSeeder class...
php artisan make:model Flight --seed
php artisan make:model Flight -s
# Generate a model and a FlightController class...
php artisan make:model Flight --controller
php artisan make:model Flight -c
# Generate a model, FlightController resource class, and form request classes...
php artisan make:model Flight --controller --resource --requests
php artisan make:model Flight -crR
# Generate a model and a FlightPolicy class...
php artisan make:model Flight --policy
# Generate a model and a migration, factory, seeder, and controller...
php artisan make:model Flight -mfsc
# Shortcut to generate a model, migration, factory, seeder, policy, controller, and form requests...
php artisan make:model Flight --all
# Generate a pivot model...
php artisan make:model Member --pivot
taula responsive tailwind amb datatables
<!-- Section 2 -->
<section class="h-25 bg-white"style="background-image: url('liniesobjectiu.png'); background-repeat: no-repeat;">
<!--Replace with your tailwind.css once created-->
<!--Regular Datatables CSS-->
<link href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css" rel="stylesheet">
<!--Responsive Extension Datatables CSS-->
<link href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.dataTables.min.css" rel="stylesheet">
<style>
/*Overrides for Tailwind CSS */
/*Form fields*/
.dataTables_wrapper select,
.dataTables_wrapper .dataTables_filter input {
color: #4a5568;
/*text-gray-700*/
padding-left: 1rem;
/*pl-4*/
padding-right: 1rem;
/*pl-4*/
padding-top: .5rem;
/*pl-2*/
padding-bottom: .5rem;
/*pl-2*/
line-height: 1.25;
/*leading-tight*/
border-width: 2px;
/*border-2*/
border-radius: .25rem;
border-color: #edf2f7;
/*border-gray-200*/
background-color: #edf2f7;
/*bg-gray-200*/
}
/*Row Hover*/
table.dataTable.hover tbody tr:hover,
table.dataTable.display tbody tr:hover {
background-color: #ebf4ff;
/*bg-indigo-100*/
}
/*Pagination Buttons*/
.dataTables_wrapper .dataTables_paginate .paginate_button {
font-weight: 700;
/*font-bold*/
border-radius: .25rem;
/*rounded*/
border: 1px solid transparent;
/*border border-transparent*/
}
/*Pagination Buttons - Current selected */
.dataTables_wrapper .dataTables_paginate .paginate_button.current {
color: #fff !important;
/*text-white*/
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);
/*shadow*/
font-weight: 700;
/*font-bold*/
border-radius: .25rem;
/*rounded*/
background: #667eea !important;
/*bg-indigo-500*/
border: 1px solid transparent;
/*border border-transparent*/
}
/*Pagination Buttons - Hover */
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
color: #fff !important;
/*text-white*/
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);
/*shadow*/
font-weight: 700;
/*font-bold*/
border-radius: .25rem;
/*rounded*/
background: #667eea !important;
/*bg-indigo-500*/
border: 1px solid transparent;
/*border border-transparent*/
}
/*Add padding to bottom border */
table.dataTable.no-footer {
border-bottom: 1px solid #e2e8f0;
/*border-b-1 border-gray-300*/
margin-top: 0.75em;
margin-bottom: 0.75em;
}
/*Change colour of responsive icon*/
table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child:before,
table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child:before {
background-color: #667eea !important;
/*bg-indigo-500*/
}
</style>
<!--Container-->
<div class="container w-full md:w-4/5 xl:w-3/5 mx-auto px-2">
<h1 class="mb-6 text-4xl font-extrabold leading-none max-w-5xl mx-auto tracking-normal text-gray-900 sm:text-5xl md:text-5xl lg:text-5xl md:tracking-tight"> Aqui <span class="w-full text-transparent bg-clip-text bg-gradient-to-r from-green-400 via-blue-500 to-purple-500 lg:inline">Tinc una llista de objectius</span> que: <br class="lg:block hidden"> em fa falta ajuda per aconseguir!. </h1>
<!--Card-->
<div id='recipients' class="p-8 mt-6 lg:mt-0 rounded shadow bg-white">
<table id="example" class="stripe hover" style="width:100%; padding-top: 1em; padding-bottom: 1em;">
<thead>
<tr>
<th data-priority="1">nom</th>
<th data-priority="2">descripcio</th>
<th data-priority="5">Start date</th>
<th data-priority="6">status</th>
<th data-priority="6"> sol.lucio</th>
<th data-priority="5">final date</th>
</tr>
</thead>
<tbody>
<tr>
<td>register</td>
<td>incorporar altres usuaris i rols per col.laboracions e inclus mes endevant suscripcions</td>
<td>04/08/2022</td>
<td> <span class="uk-text-danger" uk-icon="icon: close; ratio: 3.5"></span></td>
<td><a href="#">pendent</a></span></td>
<td>-</td>
</tr>
<!-- Rest of your data (refer to https://datatables.net/examples/server_side/ for server side processing)-->
<tr>
<td>Administracio</td>
<td>operacions crud per l'administrador</td>
<td>04/08/2022</td>
<td> <span class="uk-text-success" uk-icon="icon: check; ratio: 3.5"></span></td>
<td><a href="#">voyager</a></span></td>
<td>04/08/2022</td>
</tr>
</tbody>
</table>
</div>
<!--/Card-->
</div>
<!--/container-->
<!-- jQuery -->
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<!--Datatables -->
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.min.js"></script>
<script>
$(document).ready(function() {
var table = $('#example').DataTable({
responsive: true
})
.columns.adjust()
.responsive.recalc();
});
</script>
</section>
array php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "estudi";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM `codes` order by categoria asc";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
?>
<!-- element que vull repetir -->
<?php echo "$row[nom]";?>
<?php }
} else {
echo "0 results";
}
$conn->close();
?>
descripcio
CONFIGURAR SERVIDOR VIRTUAL
1. OBRIR EL FITXER "C:\xampp\apache\conf\extra\httpd-vhosts.conf" i deixar.....
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/estudijoanpuig/public/"
ServerName estudijoanpuig
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/estudi/public/"
ServerName estudi
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/laravel/public/"
ServerName laravel
</VirtualHost>
2. OBRIR EL FITXER "C:\Windows\System32\drivers\etc\hosts" I DEIXAR COM ...
localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
::1 localhost
127.0.0.1 estudijoanpuig
127.0.0.1 estudi
127.0.0.1 laravel
CONFIGURAR EXTENSION PHP PER A LARAVEL
======================================
descomentar a la linia 920 del fitxer C:\xampp\php\php.ini
extension=gd
Fraccionar el projecte: 1.-Pujar tota la carpeta de local al directori del domini. 2.-Agafal el directori public i posarlo a public_html. 3.-a public_html posar-hi el fitxer .htaccess. 4.-Modificar la ruta a index.php
Codi del fitxer .htaccess
RewriteEngine On
RewriteCond %{REQUEST_URI} !^public
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ public/$1 [L]
Codi de bootstrap/app
//public_path
$app->bind('path.public',function(){
return realpath('./../public/');
});
primera solucio afegir ruta nova
Route::get('/linkstorage', function () {
Artisan::call('storage:link');
});
segona solucio modificar el fitxer Config/filesystem.php
'links' => [
base_path('/public_html/storage') => storage_path('app/public'),
],
Voyager és un paquet d'administració de Laravel que inclou operacions BREAD (CRUD), un gestor de mitjans, un creador de menús i molt més.
composer require tcg/voyager
php artisan voyager:install --with-dummy
php artisan voyager:admin [email protected] --create
En el panell de control, tools\database\create new table
Inside of your admin panel you can visit Tools->Database and you'll be able to view all your current tables in your database. You may also click on 'Create a New Table' to create a new table in your database. All newly created tables will use the charset defined in your default database connection.
nom | descripcio | Start date | status | link sol.lucio | final date |
---|---|---|---|---|---|
Administracio | panell de control per fer operacions de crud i nomes pugui entrar la persona registrada com administrador | 2022-08-07 08:49:00 | ![]() |
url solucio | 2022-08-07 09:13:30 |
protegir una pagina a segons quins usuaris | nomes se que cal fer-ho amb middleware | 2022-08-07 19:51:00 | ![]() |
url solucio | 2022-08-08 10:26:13 |
configrar els enviaments de correu | recordar contrasenya, formulari de contacte etc. | 2022-08-08 19:44:00 | ![]() |
url solucio | 2022-08-08 19:47:53 |