L'arxiu /etc/hostsés un fitxer de configuració en sistemes operatius basats en Unix, com a Linux. Aquest fitxer mapea les direccions IP a nombres d'host i s'utilitza per resoldre noms d'host a direccions IP localment, abans de consultar un servidor de noms (DNS). Aquí hi ha un exemple bàsic de com podria ser l'estructura de l'arxiu /etc/hosts:
127.0.0.1 localhost 127.0.1.1 tu-hostname # Las siguientes líneas son ejemplos de asignaciones de dirección IP a nombres de host # Puedes agregar tus propias entradas según sea necesario 192.168.1.10 servidor-web 192.168.1.20 otro-host
Explicació de les línies en aquest exemple:
Cada línia segueix el format dirección-IP nombre-de-host. Podeu agregar o modificar línies segons les vostres necessitats. És important destacar que les línies que comencen amb #els seus comentaris i no afecten la resolució de noms. A més, ten en compte que les modificacions en aquest arxiu generalment requereixen privilegis de superusuari (arrel). Després de fer canvis, no necessites reiniciar el sistema; els canvis haurien de tenir efecte immediat.
d
Updated: 2023-12-02 23:31:17En sistemes basats en Debian, com Ubuntu, el directori /etc/apache2/sites-available/està utilitzat per emmagatzemar arxius de configuració de llocs web disponibles per a Apache. Cada arxiu en aquest directori defineix la configuració d'un lloc web específic. A continuació, proporcioneu una estructura bàsica d'un d'aquests fitxers de configuració:
/etc/apache2/sites-available/
<VirtualHost *:80> ServerAdmin webmaster@tu-sitio.com ServerName tu-sitio.com DocumentRoot /ruta/al/directorio/publico <Directory /ruta/al/directorio/publico> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/tu-sitio_error.log CustomLog ${APACHE_LOG_DIR}/tu-sitio_access.log combined </VirtualHost>
Explicació de les principals directives:
Recordeu que és només un exemple i heu de personalitzar segons les necessitats i l'estructura del vostre lloc web. A més, després de crear o modificar fitxers en sites-availablegeneral, s'ha d'habilitar el lloc utilitzant l'ordre a2ensitei reiniciar Apache per als canvis sobre l'efecte.
Updated: 2023-12-02 23:26:43Aquesta ordre ens indicarà el nombre de paquets que es poden actualitzar en cas que hi hagi paquets actualitzables, i si n'hi hagués, ens avisa de l'existència de l' ordre...
apt-get list --upgradable
que ens permet llistar els paquets actualitzables abans d'instal·lar-los.
La solució més cauta és la instal·lació manual dels paquets retinguts . Per fer-ho, executarem la següent ordre :
sudo apt-get install < llista de paquets retinguts >
b
Updated: 2023-12-02 21:49:20INSTAL.LAR COMPOSER:
sudo curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
sudo apt install composer
verifiquem l'instal.lacio
composer
INSTAL.LAR LARAVEL:
anem al directoti
cd /var/www/html/
creem el projecte laravel
sudo composer create-project laravel/laravel "prodeskserver"
anem al directori del projecte
cd /var/www/html/prodeskserver
i confugurem els permisos necesaris...
sudo chown -R www-data:www-data .
sudo chmod -R 775 storage/
crear l'arxiu de host virtural d'apache a...
cd /etc/apache2/sites-available/
nano prodeskserver.conf
i posar-hi aquest codi:
<VirtualHost *:80> ServerName @localhost DocumentRoot /var/www/html/prodeskserver/public <Directory /var/www/html/prodeskserver> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
habilitar la configuracio d'apapche per a Laravel
sudo a2ensite prodeskserver.conf
verificar la sintaxi
sudo apachectl -t
i reiniciar apache
sudo systemctl reload apache2
Navegar a http://192.168.1.130/
Updated: 2023-12-02 21:49:02Guía de instalación de la base de datos MariaDB
sudo apt update sudo apt install mariadb-server sudo systemctl status mariadb
CONFIGURACIÓN
sudo mysql_secure_installation
al dialeg en el primer enter i els altres tots n
CREAR USUARIO Y CONTRASEÑA:
sudo mariadb
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY '199811' WITH GRANT OPTION;
donar privilegis
FLUSH PRIVILEGES;
exit
INSTALACIÓN DE PHPMYADMIN
sudo apt update
insta-lar phpmyadmin
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
en el dialeg 1 seleccionar apache i en 2 yes i posar contrasenya
sudo systemctl restart apache2
anar al navegador i posar l'adreça ip/phpmyadmin a veure si funciona.
d
Updated: 2023-12-02 21:48:41apt-get install php8.1 libapache2-mod-php8.1 php8.1-mysql php8.1-gd php8.1-curl php8.1-xml -y
php --version
PHP és un llenguatge de processament utilitzat per servir les pàgines PHP. Per defecte, Ubuntu 22.04 proporciona la darrera versió de PHP 8.1. Podeu instal·lar-lo amb altres extensions a la sortida següent:
Updated: 2023-12-02 21:48:09INSTAL.LAR APACHE2
apt-get install apache2 -y
engegar i que arrenqui amb el servidor
systemctl start apache2 systemctl enable apache2
veure si esta engegat
systemctl status apache2
veure la versio
apache2ctl -version
El servidor web Apache és un component principal de la pila LAMP. De manera predeterminada, el paquet del servidor web Apache s'inclou al repositori predeterminat d'Ubuntu 22.04. Podeu instal·lar-lo fàcilment només executant l'ordre següent:
També podeu provar la instal·lació d'Apache mitjançant el navegador web mitjançant l'URL que tingui el servidor. Podem averiguar-la amb el comandament..
ifconfig
en la consulta de prodeskserver.....
http://192.168.1.130
en la consulta de las maquina virtual a Navas.
http://192.168.1.141
ens sortira la pagina index.html que hi ha a /var/www/html/
Updated: 2023-12-02 21:47:46
chmod -R 777 /ruta/carpeta
Aquesta ordre estableix permisos de lectura, escriptura i execució a la carpeta i tot el que conté.
concedir acces total a una carpeta i al seu contingut.
Updated: 2023-12-02 21:47:19sudo su
i paraula de pas
sudo service apache2 start
sytemctl start apache2
systemctl enable apache2
systemctl status apache2
per arrancar el servidor apache m'ha demanat si era root..
Updated: 2023-12-02 21:46:29
sudo apt update
sudo apt upgrade
Aquesta ordre ens mostrarà tots els nous paquets que hi ha disponibles per a la nostra distro (tant per a Ubuntu com per als programes instal·lats) i s'encarregarà de baixar i instal·lar tots ells.
Quan acabi el procés (encara que no sigui obligatori) només haurem de reiniciar l'ordinador perquè tot el procés d'actualització es completi i puguem començar a fer servir tots els nous paquets.
sudo reboot
operacions per mantenir actualitzat el sistema.
Updated: 2023-12-02 21:46:03
chmod 755 xampp-linux-*-installer.run
sudo ./xampp-linux-*-installer.run
instal.lar xampp en ubuntu
Updated: 2023-12-02 21:45:21La instalación de WordPress en un servidor Ubuntu 22.04 implica varios pasos. A continuación, te proporciono una guía básica para realizar esta instalación. Ten en cuenta que estos pasos asumen que ya tienes un servidor web y una base de datos MySQL configurados.
sudo apt update sudo apt upgrade
sudo apt install apache2
sudo apt install mysql-server
sudo apt install php libapache2-mod-php php-mysql
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
sudo mv wordpress /var/www/html/
sudo mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'tu_contraseña'; GRANT ALL PRIVILEGES ON wordpress.* TO 'nombre_usuario'@'localhost'; FLUSH PRIVILEGES; EXIT;
cd /var/www/html/wordpress sudo cp wp-config-sample.php wp-config.php sudo nano wp-config.php
sudo chown -R www-data:www-data /var/www/html/wordpress sudo chmod -R 755 /var/www/html/wordpress
sudo nano /etc/apache2/sites-available/000-default.conf
<Directory /var/www/html/wordpress/> AllowOverride All </Directory>
sudo service apache2 restart
¡Listo! Ahora deberías tener WordPress instalado en tu servidor Ubuntu 22.04. Recuerda que esta es una guía básica y que siempre es recomendable revisar la documentación oficial y considerar la seguridad, como usar certificados SSL para conexiones seguras.
d
Updated: 2023-12-01 11:40:08sudo apt-get install nodejs
sudo apt install npm
veure versio
nodejs -v
npm -v
desinstal.lar
sudo apt remove nodejs
sudo apt remove npm
d
Updated: 2023-11-30 16:52:20ssh usuario@direccion_ip_del_servidor
sudo apt update sudo apt install git
cd /ruta/del/directorio
git clone https://github.com/nombre_usuario/nombre_repositorio.git
cd nombre_repositorio composer install
cp .env.example .env nano .env # o utiliza el editor de texto que prefieras
php artisan key:generate
sudo chown -R www-data:www-data storage sudo chown -R www-data:www-data bootstrap/cache
sudo systemctl restart apache2
Amb aquests passos, hauríeu d'haver clonat el vostre repositori de Laravel en un servidor Ubuntu 22.04 i configurada l'aplicació per a la seva execució. Asegúrate de revisar la documentació de Laravel per obtenir més detalls sobre la configuració específica de la teva aplicació.
d
Updated: 2023-11-29 11:16:46Instal·lar Ubuntu Server en un ordinador HP és un procés relativament senzill. Aquí tens una guia pas a pas:
Requisits previs:
Passos per instal·lar Ubuntu Server:
Després de reiniciar, hauríeu de tenir Ubuntu Server instal·lat al vostre ordinador HP. Assegureu-vos de realitzar les configuracions addicionals segons les vostres necessitats, com ara la instal·lació de paquets addicionals, la configuració de serveis i l'aplicació d'actualitzacions del sistema.
d
Updated: 2023-11-28 23:23:48averiguar ip del servidor:
ifconfig
obtindrem ladreça del servidor en negrita
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.130 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::1a60:24ff:fe7c:3bc7 prefixlen 64 scopeid 0x20<link> ether 18:60:24:7c:3b:c7 txqueuelen 1000 (Ethernet) RX packets 387381 bytes 525624260 (525.6 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 183044 bytes 14508158 (14.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 312 bytes 31824 (31.8 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 312 bytes 31824 (31.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
//1 copiar aquest codi a: //C:\xampp\apache\conf\extra\httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/" ServerName localhost </VirtualHost> <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/larpleline/public/" ServerName larpleline.test </VirtualHost> =============================================== //2 copiar aquest codi a: //C:\Windows\System32\drivers\etc\hosts 127.0.0.1 localhost ::1 localhost 127.0.0.1 larpreline.test
CONFIGURAR EXTENSION PHP PER A LARAVEL ====================================== descomentar a la linia 920 del fitxer C:\xampp\php\php.ini extension=gdUpdated: 2023-11-01 15:44:28
//a la capçalera de header_nav.php
<?php $var = 'localhost xampp navas';?>
//posar a tots els llocs que vulgui repetir aquest texte: title navbar footer etc.
<?php echo "$var";?>
Updated: 2023-09-30 19:11:55
================
//config.php
================
<?php
define('DBUSER','user');
define('DBPWD','pasword');
define('DBHOST','localhost');
define('DBNAME','nomdb');
?>
=============
// people.php
=============
<?php require_once 'header_nav.php';?>
<?php
require_once 'model_people.php';
$people = getpeople();
require 'list_people.php';
?>
<?php require_once 'footer.php';?>
============
// model.php
============
<?php
require_once 'config.php';
function openConex(){
$conex=new mysqli(DBHOST, DBUSER, DBPWD, DBNAME);
return $conex;
}
function getPeople(){
$mysqli = openConex();
$result = $mysqli->query('SELECT * FROM people ORDER BY id desc');
return $result;
}
function getPersonById($id)
{
$mysqli = openConex();
$result = $mysqli->query('SELECT * FROM people WHERE id ='.$id);
$row = mysqli_fetch_assoc($result);
return $row;
}
?>
=================
//list_people.php
=================
<?php foreach ($people as $person) : ?>
<!-- element que vull repetir -->
<!-- card -->
<div class="<?php echo "$person[categoria]";?>" data-tags="<?php echo "$person[nom]";?> <?php echo "$person[categoria]";?> ">
<div class="uk-card uk-card-small uk-card-default">
<div class="uk-card-media">
<div class="uk-inline-clip uk-transition-toggle" tabindex="0">
<img data-fancybox="gallery" src="img/<?php echo "$person[img]";?>" >
<div class="uk-transition-slide-bottom uk-position-bottom uk-overlay uk-overlay-primary">
</div>
</div>
</div>
<div class="uk-card-body">
<a href="show_people.php?id=<?php echo $person['id'] ?>"><h4 class="uk-margin-small-bottom uk-margin-remove-adjacent uk-text-bold text-transparent bg-clip-text bg-gradient-to-r from-green-400 via-blue-500 to-purple-500"><?php echo "$person[nom]";?></h4></a>
<p class="uk-text-small uk-text-muted"><?php echo "$person[categoria]";?>-actualitzat: <?php echo "$person[updated_at]";?></p>
</div>
<div class="uk-card-footer">
<div class="uk-grid uk-grid-small uk-grid-divider uk-flex uk-flex-middle" data-uk-grid>
<div class="uk-width-auto uk-text-right">
<a href="<?php echo "$person[web]";?>" data-uk-tooltip="title: web oficial" class="uk-icon-world uk-icon" data-uk-icon="icon:world; ratio: 1.2" target="_blank" ></a>
<a href="show_people.php?id=<?php echo $person['id'] ?>" data-uk-tooltip="title: gallery folder" class="uk-icon-link" data-uk-icon="icon:search; ratio: 1.2"></a>
<a href="<?php echo "$person[ins]";?>" data-uk-tooltip="title: Instagram" class="uk-icon-link" data-uk-icon="icon:instagram; ratio: 1.2"target="_blank"></a>
<a href="<?php echo "$person[face]";?>" data-uk-tooltip="title: facebook" class="uk-icon-link" data-uk-icon="icon:facebook; ratio: 1.2"target="_blank"></a>
</div>
<div class="uk-width-auto uk-text-right">
<a data-uk-tooltip="title: Drag this card" href="#" class="uk-icon-link drag-icon" data-uk-icon="icon:move; ratio: 1.2"></a>
</div>
</div>
</div>
</div>
</div>
<!-- /card -->
<?php endforeach; ?>
=================
//show_people.php
=================
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
<?php include 'header_nav.php';?>
<?php require_once 'model_people.php'; ?>
<?php $person = getPersonById($_GET['id']); ?>
detall
Updated: 2023-09-30 16:35:04php artisan make:controller CodesController --resource
Updated: 2023-09-14 21:19:31
<?php namespace App\Http\Controllers; use App\Models\Code; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class CodeController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $codes = Code::all(); return view('codes.index', compact('codes')); } public function install() { $codes = DB::table('codes') ->where('tipus', '=', 'l9f2' ) ->get(); return view('codes.install', compact('codes')); } public function laravel() { $codes = DB::table('codes') ->where('framework', '=', 'laravel' ) ->get(); return view('codes.laravel', compact('codes')); } public function filament() { $codes = DB::table('codes') ->where('framework', '=', 'filament' ) ->get(); return view('codes.filament', compact('codes')); } public function model_laravel() { $codes = DB::table('codes') ->where([ ['framework', '=', 'laravel'], ['tipus', '=', 'model'] ]) ->get(); return view('codes.model', compact('codes')); } public function controller_laravel() { $codes = DB::table('codes') ->where([ ['framework', '=', 'laravel'], ['tipus', '=', 'controllers'] ]) ->get()->sortByDesc("updated_at"); return view('codes.controller', compact('codes')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param \App\Models\Code $code * @return \Illuminate\Http\Response */ public function show(Code $code) { // } /** * Show the form for editing the specified resource. * * @param \App\Models\Code $code * @return \Illuminate\Http\Response */ public function edit(Code $code) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Models\Code $code * @return \Illuminate\Http\Response */ public function update(Request $request, Code $code) { // } /** * Remove the specified resource from storage. * * @param \App\Models\Code $code * @return \Illuminate\Http\Response */ public function destroy(Code $code) { // } }
La millor forma de crear un controlador resources es fer-ho desde el principi. Amb una sola ordre per el model la migracio que creara la taula i el controlador.
php artisan make:model Code -mcrUpdated: 2023-09-14 21:17:12
laravel new estudijoanpuig --jet
npm install
npm run build
npm run dev
php artisan migrate
composer require tcg/voyager
php artisan voyager:install --with-dummy
php artisan voyager:admin joanpuigbertran@gmail.com --create
Updated: 2023-09-13 09:14:56
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('people', function (Blueprint $table) {
$table->id();
$table->string('nom', 255);
$table->string('img', 255)->nullable()->default(NULL);
$table->string('categoria', 255);
$table->string('vestit', 255);
$table->string('cabell', 255);
$table->string('origen', 255);
$table->string('web', 255)->nullable()->default(NULL);
$table->string('folder', 255)->nullable()->default(NULL);
$table->string('ins', 255);
$table->string('face', 255)->nullable()->default(NULL);
$table->string('mp3', 255)->nullable()->default(NULL);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('people');
}
};
Updated: 2023-09-04 21:40:39
//crear model controlador i migracio de Watercolor
php artisan make:model Watercolor -mcr
//editar model
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Watercolor extends Model
{
use HasFactory;
protected $fillable = array('img', 'nom', 'dimensions', 'any', 'theme', 'autor', 'url');
}
//editar controlador
<?php
namespace App\Http\Controllers;
use App\Models\Watercolor;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class WatercolorController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$watercolor = Watercolor::all()->sortByDesc("updated_at");
return view('watercolor.index', compact('watercolor'));
}
//editar migracio
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('watercolors', function (Blueprint $table) {
$table->integer('id')->unsigned()->autoIncrement();
$table->string('img', 255);
$table->string('nom', 255);
$table->string('dimensions', 255)->nullable()->default(NULL);
$table->string('any', 255)->nullable()->default(NULL);
$table->string('theme', 255);
$table->string('autor', 255)->nullable()->default(NULL);
$table->string('url', 255)->nullable()->default(NULL);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('watercolors');
}
};
//executar la migracio
php artisan migrate
Updated: 2023-09-04 19:12:07
//crear resource Personcomposer require doctrine/dbal
php artisan make:filament-resource Person --generate
<?php namespace App\Filament\Resources; use App\Filament\Resources\PersonResource\Pages; use App\Filament\Resources\PersonResource\RelationManagers; use App\Models\Person; use Filament\Forms; use Filament\Resources\Form; use Filament\Resources\Resource; use Filament\Resources\Table; use Filament\Tables; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; use Filament\Forms\Components\FileUpload; use Filament\Tables\Columns\ImageColumn; use Filament\Forms\Components\Select; class PersonResource extends Resource { protected static ?string $model = Person::class; protected static ?string $navigationIcon = 'heroicon-o-collection'; public static function form(Form $form): Form { return $form ->schema([ Forms\Components\TextInput::make('nom') ->required() ->maxLength(255), Forms\Components\FileUpload::make('img'), Forms\Components\Select::make('categoria') ->options([ 'photographers' => 'photographers', 'painters' => 'painters', 'influencers' => 'influencers', 'music' => 'music', 'models' => 'models', 'esports' => 'espòrts', ]), Forms\Components\Select::make('vestit') ->options([ 'vestit' => 'vestit', 'nu' => 'nu', 'linguerie' => 'linguerie', ]), Forms\Components\Select::make('cabell') ->options([ 'rossa' => 'rossa', 'morena' => 'morena', 'pelroja' => 'pelroja', ]), Forms\Components\Select::make('origen') ->options([ 'caucasica' => 'caucasica', 'negra' => 'negra', 'asiatica' => 'asiatica', 'catalan' => 'catalan', 'spanish' => 'spanish', 'asia' => 'asia', 'africa' => 'africa', 'north_america' => 'north_america', 'south_america' => 'south_america', 'antarctica' => 'antarctica', 'europe' => 'europe', 'australia' => 'australia', ]), Forms\Components\TextInput::make('folder') ->maxLength(255), Forms\Components\TextInput::make('ins') ->maxLength(255), Forms\Components\TextInput::make('face') ->maxLength(255), Forms\Components\TextInput::make('mp3') ->maxLength(255), Forms\Components\TextInput::make('web') ->maxLength(255), ]); } public static function table(Table $table): Table { return $table ->columns([ Tables\Columns\TextColumn::make('nom')->limit(10), Tables\Columns\ImageColumn::make('img')->width(35), Tables\Columns\TextColumn::make('categoria')->limit(10), Tables\Columns\TextColumn::make('vestit')->limit(10), Tables\Columns\TextColumn::make('cabell')->limit(10), Tables\Columns\TextColumn::make('origen')->limit(10), Tables\Columns\TextColumn::make('folder')->limit(10), Tables\Columns\TextColumn::make('ins')->limit(10), Tables\Columns\TextColumn::make('face')->limit(10), Tables\Columns\TextColumn::make('mp3')->limit(10), Tables\Columns\TextColumn::make('updated_at') ->dateTime(), Tables\Columns\TextColumn::make('web'), ]) ->filters([ // ]) ->actions([ Tables\Actions\EditAction::make(), ]) ->bulkActions([ Tables\Actions\DeleteBulkAction::make(), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListPeople::route('/'), 'create' => Pages\CreatePerson::route('/create'), 'edit' => Pages\EditPerson::route('/{record}/edit'), ]; } }Updated: 2023-09-04 09:12:07
//a routes\web.php
//cridar el controlador amb use
//afegir la route
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\WebController;
Route::get('webs', [WebController::class, 'index']);
afegir la funcio index a app\Http\Controllers\WebController.php
public function index()
{
$webs = Web::all();
return view('webs.index', compact('webs'));
}
//crear directori webs i afegir index.blade.php
//fer foreach a l'element que vull repetir
@foreach ($webs as $web)
<!-- card -->
<div class="{{$web->framework}}" data-categoria="{{$web->categoria}}" data-css="{{$web->css}}" data-framework="{{$web->framework}}" data-servidor="{{$web->servidor}}" data-nom="{{$web->nom}}" data-descripcio="{{$web->descripcio}}" data-tags="{{$web->categoria}} {{$web->css}} {{$web->framework}} {{$web->servidor}} {{$web->nom}} {{$web->descripcio}}">
<div class="uk-card uk-card-small uk-card-default">
<div class="uk-card-header">
<div class="uk-grid uk-grid-small uk-text-small" data-uk-grid>
<div class="uk-width-expand">
<span class="cat-txt">{{$web->categoria}}</span>
</div>
<div class="uk-width-auto uk-text-right uk-text-muted">
{{$web->css}}
</div>
</div>
</div>
<div class="uk-card-media">
<div class="uk-inline-clip uk-transition-toggle" tabindex="0">
<a data-fancybox="gallery" data-src="storage/{{$web->img}}"><img src="storage/{{$web->img}}"/></a>
<div class="uk-transition-slide-bottom uk-position-bottom uk-overlay uk-overlay-primary">
{{$web->categoria}} - {{$web->tags}} - {{$web->css}} - {{$web->framework}}
</div>
</div>
</div>
<div class="uk-card-body">
<h6 ><a class="uk-margin-small-bottom uk-margin-remove-adjacent uk-text-bold" href="{{$web->url}}">{{$web->nom}}</a></h6>
<p class="uk-text-small uk-text-muted">{{$web->idescripcio}}</p>
</div>
<div class="uk-card-footer">
<div class="uk-grid uk-grid-small uk-grid-divider uk-flex uk-flex-middle" data-uk-grid>
<div class="uk-width-expand uk-text-small">
{{$web->updated_at}}
</div>
<div class="uk-width-auto uk-text-right">
<div class="uk-inline ">
<a href="{{$web->url}}" target="_blank"><span uk-icon="link" class="uk-icon"></span></a>
<a href="{{$web->download}}" target="_blank"><span uk-icon="download" class="uk-icon"></span></a>
<a data-fancybox="video-gallery" href="{{$web->youtube}}"><span uk-icon="youtube" class="uk-icon"></span></a>
<a data-fancybox="" data-type="iframe" data-src="embed/{{$web->codi}}" href="javascript:;"><span uk-icon="code" class="uk-icon"></span></a>
</div>
</div>
<div class="uk-width-auto uk-text-right">
<a data-uk-tooltip="title: Drag this card" href="#" class="uk-icon-link drag-icon" data-uk-icon="icon:move; ratio: 1"></a>
</div>
</div>
</div>
</div>
</div>
<!-- /card -->
@endforeach
Updated: 2023-09-02 22:36:00
//crear model web
php artisan make:model Web -mcr
//editar la migracio
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('webs', function (Blueprint $table) {
$table->integer('id')->unsigned()->autoIncrement();
$table->string('img', 255);
$table->string('nom', 255);
$table->string('tipus', 255);
$table->string('framework', 255);
$table->string('css', 255);
$table->string('servidor', 255);
$table->string('url', 255);
$table->string('download', 255);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('webs');
}
};
//editar el model
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Web extends Model
{
use HasFactory;
protected $fillable = array('img', 'nom', 'tipus', 'framework', 'css', 'servidor', 'url', 'download');
}
Updated: 2023-09-02 09:16:04
//crear resource Web
php artisan make:filament-resource Web
//editar WebResource
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\WebResource\Pages;
use App\Filament\Resources\WebResource\RelationManagers;
use App\Models\Web;
use Filament\Forms;
use Filament\Resources\Form;
use Filament\Resources\Resource;
use Filament\Resources\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class WebResource extends Resource
{
protected static ?string $model = Web::class;
protected static ?string $navigationIcon = 'heroicon-o-collection';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\FileUpload::make('img'),
Forms\Components\TextInput::make('nom')
->required()
->maxLength(255),
Forms\Components\TextInput::make('tipus')
->maxLength(255),
Forms\Components\Select::make('framework')
->options([
'laravel' => 'laravel',
'wordpress' => 'wordpress',
'codeigniter' => 'codeigniter',
'php' => 'php',
]),
Forms\Components\Select::make('css')
->options([
'bootstrap' => 'bootstrap',
'tailwind' => 'tailwind',
'uikit' => 'uikit',
]),
Forms\Components\Select::make('servidor')
->options([
'localhost' => 'localhost',
'hostinger' => 'hostinger',
'github' => 'github',
'synology' => 'synology',
]),
Forms\Components\TextInput::make('url')
->required()
->maxLength(255),
Forms\Components\TextInput::make('download')
->maxLength(255),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\ImageColumn::make('img')->width(35),
Tables\Columns\TextColumn::make('nom')->limit(10)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('tipus')->limit(10)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('framework')->limit(10)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('css')->limit(10)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('servidor')->limit(10)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('url')->limit(10),
Tables\Columns\TextColumn::make('download')->limit(10),
Tables\Columns\TextColumn::make('updated_at')
->dateTime(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\DeleteBulkAction::make(),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListWebs::route('/'),
'create' => Pages\CreateWeb::route('/create'),
'edit' => Pages\EditWeb::route('/{record}/edit'),
];
}
}
Updated: 2023-09-02 04:42:04
php artisan make:filament-resource Tool
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\ToolResource\Pages;
use App\Filament\Resources\ToolResource\RelationManagers;
use App\Models\Tool;
use Filament\Forms;
use Filament\Resources\Form;
use Filament\Resources\Resource;
use Filament\Resources\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class ToolResource extends Resource
{
protected static ?string $model = Tool::class;
protected static ?string $navigationIcon = 'heroicon-o-collection';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('nom')
->required()
->maxLength(255),
Forms\Components\FileUpload::make('img'),
Forms\Components\MarkdownEditor::make('descripcio')
->columnSpan('full'),
Forms\Components\MarkdownEditor::make('body')
->columnSpan('full'),
Forms\Components\Select::make('categoria')
->options([
'requisits' => 'requisits',
'formacio' => 'formacio',
'framework' => 'framework',
'css' => 'css',
'themes' => 'themes',
'llibreries' => 'llibreries',
'icons' => 'icons',
]),
Forms\Components\TextInput::make('youtube')
->maxLength(255),
Forms\Components\TextInput::make('web')
->maxLength(255),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('nom')->limit(10)
->searchable()
->sortable(),
Tables\Columns\ImageColumn::make('img')->width(35),
Tables\Columns\TextColumn::make('descripcio')->limit(15)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('categoria')->limit(10)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('youtube')->limit(5),
Tables\Columns\TextColumn::make('web')->limit(5)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('updated_at')
->dateTime(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\DeleteBulkAction::make(),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListTools::route('/'),
'create' => Pages\CreateTool::route('/create'),
'edit' => Pages\EditTool::route('/{record}/edit'),
];
}
}
Updated: 2023-09-01 21:26:49
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Tool extends Model
{
use HasFactory;
protected $fillable = array('nom', 'descripcio', 'body', 'categoria', 'img', 'youtube', 'web');
}
Updated: 2023-09-01 21:19:51
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Examples extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model("login_model");
$this->load->database();
$this->load->helper('url');
$this->load->library('grocery_CRUD');
}
public function _example_output($output = null)
{
$this->load->view('example.php',(array)$output);
}
public function index()
{
$this->_example_output((object)array('output' => '' , 'js_files' => array() , 'css_files' => array()));
}
/**els meus cruds*/
public function codes()
{
$crud = new grocery_CRUD();
$crud->set_table('codes');
$crud->set_subject('codes');
$output = $crud->render();
$this->_example_output($output);
}
public function news()
{
$crud = new grocery_CRUD();
$crud->set_table('news');
$crud->set_subject('news');
$crud->set_field_upload('img','../img/');
$output = $crud->render();
$this->_example_output($output);
}
public function watercolors()
{
$crud = new grocery_CRUD();
$crud->set_table('watercolors');
$crud->set_subject('watercolors');
$crud->set_field_upload('img','../img/');
$output = $crud->render();
$this->_example_output($output);
}
public function synology()
{
$crud = new grocery_CRUD();
$crud->set_table('synology');
$crud->set_subject('synology');
$crud->set_field_upload('img','../img/');
$output = $crud->render();
$this->_example_output($output);
}
public function pages_mac()
{
$crud = new grocery_CRUD();
$crud->set_table('pages_mac');
$crud->set_subject('pages_mac');
$crud->set_field_upload('img','../img/localhost_mac/');
$output = $crud->render();
$this->_example_output($output);
}
public function webs()
{
$crud = new grocery_CRUD();
$crud->set_table('webs');
$crud->set_subject('webs');
$crud->set_field_upload('img','../img/localhost_mac/');
$output = $crud->render();
$this->_example_output($output);
}
public function people()
{
$crud = new grocery_CRUD();
$crud->set_table('people');
$crud->set_subject('people');
$crud->set_field_upload('img','../img/');
$output = $crud->render();
$this->_example_output($output);
}
public function tools()
{
$crud = new grocery_CRUD();
$crud->set_table('tools');
$crud->set_subject('tools');
$crud->set_field_upload('img','../img/');
$output = $crud->render();
$this->_example_output($output);
}
}
Updated: 2023-08-31 14:43:54
Descàrrega de CodeIgniter
Podem descarregar la versió més actualitzada de CodeIgniter directament des de la seva pàgina web, a la secció de descàrregues: http://codeigniter.com/downloads/
En el moment d'escriure aquest article la versió més actual és la 1.7.2, però probablement quan llegiu aquest text ja l'hagin actualitzat, així que entreu al lloc de descàrregues per estar segur sobre la versió més nova que existeixi.
Updated: 2023-08-31 02:13:54
Enllaçar amb una pàgina diferent, però en una secció interna
Els enllaços locals poden, alhora, apuntar ja no a la pàgina en general sinó més precisament a una secció concreta. Aquest tipus denllaços resulten ser un híbrid dintern i local. La sintaxi és aquesta:
<a href="archivo.html#seccion">contenido</a>
<a name="seccion"></a>
Updated: 2023-08-26 11:20:07
"SELECT * FROM `pages_mac` WHERE tipus='gallery' order by nom asc"
Updated: 2023-08-23 11:14:19
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
Updated: 2023-08-23 08:11:05
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Updated: 2023-08-20 19:47:32
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.
//3.-a public_html posar-hi el fitxer .htaccess. s// 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]
4.-Afegir al final de bootstrap/app el següent Codi ...
//4.-Codi de bootstrap/app// //public_path $app->bind('path.public',function(){ return realpath('./../public/'); });
5.-Modificar la ruta a index.php.
if (file_exists($maintenance = __DIR__.'/../../estudi/storage/framework/maintenance.php')) { require $maintenance; } require __DIR__.'/../../estudi/vendor/autoload.php'; $app = require_once __DIR__.'/../../estudi/bootstrap/app.php';
6.-conffigurar el fitxer .env
APP_NAME=laravelfilament APP_ENV=local APP_KEY=base64:9Y1xFg++FBqVQzpNSm1QW1Zxr60W7cm0Jw76pejOqcU= APP_DEBUG=true APP_URL=https://laravelfilament.com/ LOG_CHANNEL=stack LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=nom bbdd DB_USERNAME=usuari DB_PASSWORD=paraula de pas
7.-crear link storage
Updated: 2023-06-11 19:02:07git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/estudijoanpuig/estudi.git
git push -u origin master
Updated: 2023-06-07 06:48:25
//crear code resource filament
php artisan make:filament-resource Code
//editar C:\xampp\htdocs\crud\app\Filament\Resources\CodeResource.php
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\CodeResource\Pages;
use App\Filament\Resources\CodeResource\RelationManagers;
use App\Models\Code;
use Filament\Forms;
use Filament\Resources\Form;
use Filament\Resources\Resource;
use Filament\Resources\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class CodeResource extends Resource
{
protected static ?string $model = Code::class;
protected static ?string $navigationIcon = 'heroicon-o-collection';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('nom')
->required()
->maxLength(255),
Forms\Components\Select::make('framework')
->options([
'laravel' => 'laravel',
'codeigniter' => 'codeigniter',
'wordpress' => 'wordpress',
'php' => 'php',
'html' => 'html',
'css' => 'css',
'llibreries' => 'llibreries',
]),
Forms\Components\Select::make('tipus')
->options([
'artisan' => 'artisan',
'background' => 'background',
'config' => 'config',
'controllers' => 'controllers',
'fancybox' => 'fancybox',
'filament' => 'filament',
'install' => 'install',
'livewire' => 'livewire',
'midlewares' => 'midlewares',
'migrations' => 'migrations',
'models' => 'models',
'query' => 'query',
'resources' => 'resources',
'routes' => 'routes',
'text_color' => 'text_color',
'views' => 'views',
]),
Forms\Components\Select::make('css')
->options([
'bootstrap3' => 'bootstrap3',
'bootstrap4' => 'bootstrap4',
'uikit' => 'uikit',
'tailwind' => 'tailwind',
'standar' => 'standar',
]),
Forms\Components\RichEditor::make('blockcode')
->columnSpan('full'),
Forms\Components\RichEditor::make('detall')
->columnSpan('full'),
Forms\Components\TextInput::make('youtube')
->maxLength(255),
Forms\Components\TextInput::make('url')
->maxLength(255),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('id')->limit(5)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('nom')->limit(16)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('framework')->limit(5)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('tipus')->limit(5)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('css')->limit(5)
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('blockcode')->limit(20),
Tables\Columns\TextColumn::make('detall')->limit(10),
Tables\Columns\TextColumn::make('youtube')->limit(10),
Tables\Columns\TextColumn::make('url')->limit(10),
Tables\Columns\TextColumn::make('updated_at')
->dateTime(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\DeleteBulkAction::make(),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListCodes::route('/'),
'create' => Pages\CreateCode::route('/create'),
'edit' => Pages\EditCode::route('/{record}/edit'),
];
}
}
Updated: 2023-05-27 12:18:19
php artisan make:model Code -mcr
editar el fitxer que ha creat l'instruccio anterior que es trova a:
C:\xampp\htdocs\example-app\database\migrations\2023_05_26_145534_create_codes_table.php
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; /** * Migration auto-generated by TablePlus 5.3.8(232) * @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->mediumtext('descripcio')->nullable()->default(NULL); $table->longtext('blockcode')->nullable()->default(NULL); $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'); } }
editar el fitxer que ha creat la instruccio anterior a:
C:\xampp\htdocs\example-app\app\Models\Code.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Code extends Model { use HasFactory; protected $fillable = array('nom', 'categoria', 'tags', 'descripcio', 'blockcode', 'txt', 'youtube', 'url'); }
php artisan migrateUpdated: 2023-05-26 13:26:49
127.0.0.1 example-app.test
<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/example-app/public/" ServerName example-app.test </VirtualHost>
APP_NAME=example-app APP_ENV=local APP_KEY=base64:aO1T7D9Qx+pQ5kjDIXrPcHIflOX2WImlT1U0kqROtCQ= APP_DEBUG=true APP_URL=http://example-app.test/ LOG_CHANNEL=stack LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=example-app DB_USERNAME=root DB_PASSWORD=Updated: 2023-05-26 09:15:13
SITUAT AL DIRECTORI ON VOLS INSTAL-LAR-LO i executa en CMD aquesta ordres:
composer require laravel/jetstream
php artisan jetstream:install livewire
npm install npm run build php artisan migrateUpdated: 2023-05-26 09:02:36
composer require filament/filament:"^2.0"
php artisan make:filament-userUpdated: 2023-05-25 16:19:05
composer create-project laravel/laravel:^9.0 example-appUpdated: 2023-05-25 16:16:06
1/** app\Http\Controllers\BlogPostsController.php (consulta dues taules unirles per categoria) */ public function index() { $blog_posts = blog_posts::select( "blog_posts.title", "blog_posts.banner", "blog_posts.excerpt", "blog_posts.published_at", "blog_categories.name as name" ) ->join("blog_categories", "blog_categories.id", "=", "blog_posts.blog_category_id") ->get(); return view('gallery_posts', compact('blog_posts')); }
2/** routes/web.php */ Route::get('/gallery_posts','App\Http\Controllers\BlogPostsController@index');
3/**resources\views\gallery_posts.blade.php */ @foreach ($blog_posts as $blog_post) @endforeachUpdated: 2023-05-22 03:20:51
Route::get('/people', function () {
$persons = DB::select("SELECT * FROM `people` WHERE `categoria` IN ('photographers', 'painters', 'influencers', 'music'); ");
return view('people', compact('persons'));
});
Route::get('/dashboard', function()
{
$persons = DB::table('people')->where('categoria', 'models')
->orderBy('id', 'desc')
->paginate(20);
return View::make('dashboard')->with('persons', $persons);
})->name('dashboard');
Updated: 2023-05-22 03:18:07
<?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]);
}
}
Updated: 2023-05-22 03:07:29
<?php include 'header_nav.php';?>
<?php include 'footer.php';?>Updated: 2023-05-21 01:30:33
<?php /* Template Name: gallery */ get_header(); ?> <?php get_sidebar(); get_footer();Updated: 2023-05-21 01:22:52
Para dejar nuestro desarrollo con un toque más profesional, simplemente añadimos en la raíz de nuestro sitio un archivo llamado .htaccess con el siguiente contenido y problema resuelto.
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php?/$0 [PT,L]
Además debemos modificar el archivo application/config/config.php reemplazando la línea que dice
$config['index_page'] = 'index.php';
Por esto otro:
$config['index_page'] = '';
Eso es todo, ahora las URLs de nuestra aplicación serán limpias sin ese index.php agregado en medio.
www.misitio.com/controller/metodoUpdated: 2023-05-20 07:02:31
<link rel="stylesheet" href="<?php echo base_url('assets/copy/style.css');?>">
<script src="<?php echo base_url('assets/copy/script.js');?>"></script>Updated: 2023-05-20 06:50:33
#-------------------------------------------------------------------- # ENVIRONMENT #-------------------------------------------------------------------- CI_ENVIRONMENT = development #-------------------------------------------------------------------- # APP #-------------------------------------------------------------------- app.baseURL = 'http://ci4.test/' # If you have trouble with `.`, you could also use `_`. # app_baseURL = '' # app.forceGlobalSecureRequests = false # app.CSPEnabled = false #-------------------------------------------------------------------- # DATABASE #-------------------------------------------------------------------- database.default.hostname = localhost database.default.database = ci4 database.default.username = root database.default.password = database.default.DBDriver = MySQLi database.default.DBPrefix =database.default.port = 3306Updated: 2023-05-17 04:27:00
en el cas que ja tinguem nomes laravel:
composer require livewire/livewire
<html> <head> @livewireStyles </head> <body> @livewireScripts </body> </html>Updated: 2023-04-24 14:26:47
Forms\Components\TextInput::make('nom')
->required()
->reactive()
->afterStateUpdated(function (Closure $set, $state) {
$set('slug', Str::slug($state));
}),
Forms\Components\TextInput::make('slug'),
Updated: 2022-12-24 01:20:48
//MYSQL: Buidar les dades de una columna
UPDATE tabla SET cantidad = null;
//MYSQL:copiar les dades de una columna a un altre
UPDATE `la_tabla` SET `columna_destino`=`columna_origen`
Updated: 2022-12-24 00:52:04
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "backpack_tw";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "select `people`.`id`, `people`.`nom`, `people`.`img`, `people`.`updated_at`, `people`.`web`,`people`.`ins`, `people`.`face`,`people`.`mp3`,
`categories`.`category_nom` as `ggg` from `people` inner join `categories` on `categories`.`id` = `people`.`category_id`";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
?>
//element a repetir
storage/<?php echo "$row[img]";?>
<?php }
} else {
echo "0 results";
}
$conn->close();
?>
Updated: 2022-12-18 22:54:37
UPDATE codes SET category_id = null;
Updated: 2022-12-17 10:07:08
php artisan tinker
App\Models\User::factory(50)->create();
Updated: 2022-11-26 11:49:50
//iframe per l'embed//
<a href="iframe.html" data-fancybox data-type="iframe">nom</a>
//video amb una imatge o texte si la suprimeixo//
<a data-fancybox="video-gallery" href="/img/video.mp4" data-width="640" data-height="360">
<img src="/img/video.jpeg" width="200" height="150" />
</a>
Updated: 2022-08-27 06:55:09
//Si voleu estalviar temps, Filament pot generar automàticament el formulari i la taula per a vosaltres, a partir de les columnes de la base de dades del vostre model.//
composer require doctrine/dbal
php artisan make:filament-resource Web --generate
Updated: 2022-08-27 02:33:22
php artisan make:model Web -mcr
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Web extends Model
{
use HasFactory;
protected $fillable = array('nom', 'descripcio', 'categoria', 'css', 'framework', 'url', 'download', 'servidor', 'img');
}
Updated: 2022-08-27 02:27:08
<?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();
?>
Updated: 2022-08-26 19:24:58
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.
Updated: 2022-08-26 19:20:59
{
"default": "tailwind",
"options": {
"tailwind": "tailwind",
"bootstrap": "bootstrap",
"uikit": "uikit"
}
}
Updated: 2022-08-26 19:20:04
composer require tcg/voyager
php artisan voyager:install --with-dummy
php artisan voyager:admin joanpuigbertran@gmail.com --create
Updated: 2022-08-26 19:15:27
//crear un recurs per al App\Models\Person.php://
php artisan make:filament-resource Person
//aixo creara varis fitxers i directori//
+-- PersonResource.php
+-- PersonResource
| +-- Pages
| | +-- CreatePerson.php
| | +-- EditPerson.php
| | +-- ListPerson.php
Updated: 2022-08-22 21:40:10
php artisan make:model Person -mcr
//editar app\Models\Person.php//
class Person extends Model
{
use HasFactory;
protected $fillable = array('nom', 'img', 'categoria', 'folder', 'web', 'ins', 'face', 'vestit', 'cabell', 'origen');
}
//editar database\migrations\create-people_table.php//
class Person extends Model
{
use HasFactory;
protected $fillable = array('nom', 'img', 'categoria', 'folder', 'web', 'ins', 'face', 'vestit', 'cabell', 'origen');
}
composer require doctrine/dbal
php artisan make:filament-resource Person --generate
//editar app\Filament\PersonResource.php//
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\PersonResource\Pages;
use App\Filament\Resources\PersonResource\RelationManagers;
use App\Models\Person;
use Filament\Forms;
use Filament\Resources\Form;
use Filament\Resources\Resource;
use Filament\Resources\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Forms\Components\FileUpload;
use Filament\Tables\Columns\ImageColumn;
use Filament\Forms\Components\Select;
class PersonResource extends Resource
{
protected static ?string $model = Person::class;
protected static ?string $navigationIcon = 'heroicon-o-collection';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('nom')
->required()
->maxLength(255),
Forms\Components\FileUpload::make('img'),
Forms\Components\Select::make('categoria')
->options([
'photographers' => 'photographers',
'painters' => 'painters',
'influencers' => 'influencers',
'music' => 'music',
'models' => 'models',
'esports' => 'espòrts',
]),
Forms\Components\Select::make('vestit')
->options([
'vestit' => 'vestit',
'nu' => 'nu',
'linguerie' => 'linguerie',
]),
Forms\Components\Select::make('cabell')
->options([
'rossa' => 'rossa',
'morena' => 'morena',
'pelroja' => 'pelroja',
]),
Forms\Components\Select::make('origen')
->options([
'caucasica' => 'caucasica',
'negra' => 'negra',
'asiatica' => 'asiatica',
'catalan' => 'catalan',
'spanish' => 'spanish',
'asia' => 'asia',
'africa' => 'africa',
'north_america' => 'north_america',
'south_america' => 'south_america',
'antarctica' => 'antarctica',
'europe' => 'europe',
'australia' => 'australia',
]),
Forms\Components\TextInput::make('folder')
->maxLength(255),
Forms\Components\TextInput::make('ins')
->maxLength(255),
Forms\Components\TextInput::make('face')
->maxLength(255),
Forms\Components\TextInput::make('mp3')
->maxLength(255),
Forms\Components\TextInput::make('web')
->maxLength(255),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('nom'),
Tables\Columns\ImageColumn::make('img'),
Tables\Columns\TextColumn::make('categoria'),
Tables\Columns\TextColumn::make('vestit'),
Tables\Columns\TextColumn::make('cabell'),
Tables\Columns\TextColumn::make('origen'),
Tables\Columns\TextColumn::make('folder'),
Tables\Columns\TextColumn::make('ins'),
Tables\Columns\TextColumn::make('face'),
Tables\Columns\TextColumn::make('mp3'),
Tables\Columns\TextColumn::make('created_at')
->dateTime(),
Tables\Columns\TextColumn::make('updated_at')
->dateTime(),
Tables\Columns\TextColumn::make('web'),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\DeleteBulkAction::make(),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListPeople::route('/'),
'create' => Pages\CreatePerson::route('/create'),
'edit' => Pages\EditPerson::route('/{record}/edit'),
];
}
}
Updated: 2022-08-22 21:37:36
<?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');
}
}
Updated: 2022-08-22 14:33:59
<?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');
}
}
Updated: 2022-08-22 14:33:40
php artisan make:filament-resource Objectiu --generate
Updated: 2022-08-22 14:33:11
<meta name="description" content="sale of watercolors">
<meta name="keywords" content="watercolors, laravel, livewire, Wordpress, painting, estudijoanpuig">
<meta name="author" content="Joan Puig Bertran">
Updated: 2022-08-16 13:43:09
/*
|--------------------------------------------------------------------------
| les meves routes
|--------------------------------------------------------------------------
*/
Route::get('/', function () {
$persons = DB::table('people')->where('categoria', 'painters')
->orderBy('id', 'desc')
->paginate(20);
return View::make('welcome')->with('persons', $persons);
});
Route::get('/codis', function () {
$objectius = App\Objectiu::all();
return view('codis', compact('objectius'));
});
Route::get('/tools', function () {
$tools = App\Tool::all();
return view('tools', compact('tools'));
});
Route::get('/laravel', function () {
return view('laravel');
});
Route::get('/webs', function () {
$webs = App\Web::all();
return view('webs', compact('webs'));
});
/*
|--------------------------------------------------------------------------
| jetstrream Routes
|--------------------------------------------------------------------------
*/
Route::middleware([
'auth:sanctum',
config('jetstream.auth_session'),
'verified'
])->group(function () {
Route::get('/dashboard', function () {
return view('dashboard');
})->name('dashboard');
Route::get('/dashmodels', function () {
$persons = DB::table('people')->where('categoria', 'models')
->orderBy('nom', 'desc')
->paginate(20);
return View::make('dashmodels')->with('persons', $persons);
})->name('dashmodels');
Route::get('/dashpeople', function () {
$persons = App\Person::all();
return view('dashpeople', compact('persons'));
})->name('dashpeople');
});
/*
|--------------------------------------------------------------------------
| voyager Routes
|--------------------------------------------------------------------------
*/
Route::group(['prefix' => 'admin'], function () {
Voyager::routes();
});
Updated: 2022-08-13 10:01:11
solucio: eliminar la carpeta storage de public i afegir ruta nova i executarla.
es mostrara una pagina en blanc i el acces directe estara creat.
Route::get('/linkstorage', function () {
Artisan::call('storage:link');
});
Updated: 2022-08-11 19:22:03
<section class="text-gray-400 bg-gray-900" style="background-image: url('liniesvoyager180.png');background-repeat: no-repeat;" >
<div class="uk-container uk-container-large">
<div class="uk-grid uk-flex-center uk-padding-medium">
<h1 class="uk-text-center uk-text-middle text-5xl uk-text-bold text-transparent bg-clip-text bg-gradient-to-r from-green-400 via-blue-500 to-purple-500 title-font mb-6">@yield ('title')</h1>
</div>
<div class="uk-grid uk-flex-center ">
<form id="search-form" action="">
<div class="uk-inline uk-width-1-1">
<span class="uk-form-icon uk-form-icon-flip uk-icon" data-uk-icon="icon: search"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="search"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9" cy="9" r="7"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M14,14 L18,18 L14,14 Z"></path></svg></span>
<input class="uk-input uk-width-1-1 search-fld" type="text" placeholder="Type your search" autofocus="">
<a hidden="" href="#" class="search-filter" data-uk-filter-control="[data-tags*='']">Search</a>
<a hidden="" href="#" class="search-filter-all uk-active" data-uk-filter-control="">Search all</a>
<a hidden="" href="#" class="search-filter-none" data-uk-filter-control="[data-empty='']">Filter none</a>
</div>
</form>
</div>
<!--CARDS WRAPPER-->
<ul class="uk-subnav uk-subnav-pill">
<li class="uk-active" data-uk-filter-control=""><a href="#">Show All</a></li>
<li data-uk-filter-control=".painters"><a href="#">painters</a></li>
<li data-uk-filter-control=".photographers"><a href="#">photographers</a></li>
<li data-uk-filter-control=".influencers"><a href="#">influencers</a></li>
<li data-uk-filter-control=".models"><a href="#">models</a></li>
<li data-uk-filter-control=".music"><a href="#">music</a></li>
</ul>
<div class="uk-grid uk-grid-medium uk-child-width-1-2@s uk-child-width-1-3@m uk-child-width-1-4@l uk-child-width-1-4@xl uk-grid-match js-filter" data-uk-grid="masonry: true" data-uk-sortable="handle: .drag-icon">
@foreach ($persons as $person)
<!-- card -->
<div class="{{$person->categoria}}" data-tags="{{$person->nom}} {{$person->categoria}} ">
<div class="uk-card uk-card-small uk-card-default">
<div class="uk-card-media">
<div class="uk-inline-clip uk-transition-toggle" tabindex="0">
<img data-fancybox="gallery" src="storage/{{$person->img}}" >
<div class="uk-transition-slide-bottom uk-position-bottom uk-overlay uk-overlay-primary">
<span data-uk-icon="icon:heart; ratio: 0.8"></span>seguidors: {{$person->ranking}}
</div>
</div>
</div>
<div class="uk-card-body">
<h4 class="uk-margin-small-bottom uk-margin-remove-adjacent uk-text-bold text-transparent bg-clip-text bg-gradient-to-r from-green-400 via-blue-500 to-purple-500">{{$person->nom}}</h4>
<p class="uk-text-small uk-text-muted">{{$person->categoria}}-{{$person->updated_at}}</p>
</div>
<div class="uk-card-footer">
<div class="uk-grid uk-grid-small uk-grid-divider uk-flex uk-flex-middle" data-uk-grid>
<div class="uk-width-auto uk-text-right">
<a href="{{$person->folder}}" data-uk-tooltip="title: gallery folder" class="uk-icon-link" data-uk-icon="icon:folder; ratio: 1.2"target="_blank"></a>
<a href="{{$person->ins}}" data-uk-tooltip="title: Instagram" class="uk-icon-link" data-uk-icon="icon:instagram; ratio: 1.2"target="_blank"></a>
<a href="{{$person->youtube}}" data-uk-tooltip="title: canal youtube" class="uk-icon-link" data-uk-icon="icon:youtube; ratio: 1.2"target="_blank"></a>
<a href="{{$person->face}}" data-uk-tooltip="title: facebook" class="uk-icon-link" data-uk-icon="icon:facebook; ratio: 1.2"target="_blank"></a>
<a href="{{$person->tiktok}}" data-uk-tooltip="title: tiktok" class="uk-icon-link" data-uk-icon="icon:tiktok; ratio: 1.2"target="_blank"></a>
<a data-fancybox href="{{$person->video}}" data-uk-tooltip="title: veure video" class="uk-icon-link" data-uk-icon="icon:play-circle; ratio: 1.2"target="_blank"></a>
<a href="{{$person->mp3}}" data-uk-tooltip="title: escoltar musica" class="uk-icon-link" data-uk-icon="icon:soundcloud; ratio: 1.2"target="_blank"></a>
</div>
<div class="uk-width-auto uk-text-right">
<a data-uk-tooltip="title: Drag this card" href="#" class="uk-icon-link drag-icon" data-uk-icon="icon:move; ratio: 1.2"></a>
</div>
</div>
</div>
</div>
</div>
<!-- /card -->
@endforeach
</div>
</div>
</section>
Updated: 2022-08-11 10:35:42
<!-- FANCYBOX 4 CSS AL HEAD -->
<link rel="stylesheet"href="https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.css"/>
<!-- FANCYBOX 4 JS AL FINAL BODY -->
<script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.umd.js"></script>
<!-- Imatge en gallery al body -->
<a data-fancybox="gallery" data-src="storage/{{$person->img}}"><img src="storage/{{$person->img}}" /></a>
Updated: 2022-08-10 10:27:27
Route::get('/people', function () {
$persons = App\Person::all();
return view('people', compact('persons'));
});
Updated: 2022-08-10 09:58:47
Route::get('/', function()
{
$builds = DB::table('blogs')->where('frontpage', '1')
->orderBy('id', 'desc')
->paginate(20);
return View::make('pages/home')->with('builds', $builds);
});
Updated: 2022-08-09 19:59:10
<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>
Updated: 2022-08-08 05:23:17
composer create-project laravel/laravel proyecto "8.*"
Updated: 2022-08-06 11:43:16
enllaç obrir en finestra nova
<a href="url" target="_blank">titol</a>
link image dimensions
<a href="url web"><img src="url image" width="150" height="150"></a>
Updated: 2022-08-06 09:06:48
php artisan list
php artisan help migrate
php artisan tinker
Updated: 2022-08-06 08:04:46
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);
}
}
Updated: 2022-08-06 05:43:07
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class 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');
$table->text('body');
$table->string('categoria', 255);
$table->string('img', 255);
$table->string('youtube', 255);
$table->string('web', 255);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tools');
}
};
Updated: 2022-08-06 04:03:15
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
Updated: 2022-08-06 03:55:38
@foreach ($persons as $person)
{{$person->categoria}}
@endforeach
Updated: 2022-08-06 03:54:24
blockcode
windows 10 averiguar ip Escriviu cmd a la casella de cerca i premeu Enter. Escriu ipconfig i premeu Enter. L'adreça IP de l'ordinador es troba al camp Adreça IPv4.
Updated: