NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Zdejší MVC a pluginy

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Jan Vacek
Člen
Avatar
Jan Vacek:4.3.2017 1:03

Ahoj, používám zdejší MVC v PHP a měl bych dotaz. Pokud si chci stáhnout nějaký plugin, co chci použít na webu, například pro práci s uploadem obrázků - nějaký crop a podobně, kam bych měl dát soubory s PHP scriptama - jestli do složky modelů, nebo je nechat volně a includovat je do kontroleru - bude to vůbec fungovat ? díky.
Hezký den :-)

 
Odpovědět
4.3.2017 1:03
Avatar
Martin Suchodol:4.3.2017 8:43

Přijde na to. Pokud používáš jmenné prostory tak do vendoru. Pokud ne tak bys měl mít odělenou logiku a data oddělená. U jmenných prostorů ale buddeš muset ještě celou aplikaci třetí strany upravit aby je využívala správně.

 
Nahoru Odpovědět
4.3.2017 8:43
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Jan Vacek
David Hartinger:4.3.2017 9:26

Záleží jaké MVC používáš. To "jednoduché MVC" nemá ještě žádnou robustní architekturu, takže do modelů. Pokud máš MVC z e-shopu, které "jednoduché MVC" rozšiřuje, tak tam do vendoru.

Editováno 4.3.2017 9:26
Nahoru Odpovědět
4.3.2017 9:26
New kid back on the block with a R.I.P
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá na Jan Vacek
Jan Bezdíček:4.3.2017 13:07

Hadam, ze pouzivas zdejsi jednoduche MVC, ktere sem taky blahove pouzival ... doporucuji ti hned hopsnout na nejaky framework, pokud to MVC chapes (Nette / Laravel ?) nebo si k tomu jednoduchemu MVC sednout, zkusit si na tom napsat vetsi appku, najit nedostatky a prakticky ho cely prekopat (jakoze zaklad nechat ale hoooodne ho rozsirit).

Ja nakonec skoncil tak, ze sem to zdejsi MVC reseni totalne prekopal k nepoznani ... ale stejne mi tam chybelo plno veci, az sem to nakonec hodil do kose a presel na Nette. Tim samozrejme nechci rict, ze to je spatne jen to je fakt jak rika nazev "jednoduche MVC" a to casem zacne byt problem. Poslouzilo mi ale i pro tvorbu internich appek pro dodavatelske spolecnosti Hyundaie a byli spokojeni! :D

Kazdopadne k dotazu ... externi pluginy apod. sem ze zacatku resil tak, ze sem si udelal slozku lib v korenovem adresari a tam sem uchovaval CSS + JS od stahnutych pluginu. Pak sem i to smazal a zacal pouzivat composer.

 
Nahoru Odpovědět
4.3.2017 13:07
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Jan Bezdíček
David Hartinger:4.3.2017 18:18

V seriálu e-shop je ukázané jak se to MVC dále rozšíří, není třeba nic vymýšlet :)

Nahoru Odpovědět
4.3.2017 18:18
New kid back on the block with a R.I.P
Avatar
Jan Vacek
Člen
Avatar
Jan Vacek:11.3.2017 14:01

Děkuji za rady, už jsem na to jaksi přišel, ovšem se objevil problém s editorem tinyMCE, kdy v momentě, že chci přidávat obrázky pomocí file browseru, tak dobře, vyberu si obrázek, zobrazí se mi v okně pro edit, ale musím javascriptem odeslat data do souboru "postAcceptor.php" jako je psáno v oficiální dokumentaci tinyMCE. Zkoušel jsem plno způsobů, ale nevím, jak to správně napojit, pokud mě .htaccess vždy z /postAcceptor.php hodí na /postAcceptor a následně mě kontroler hodí na chybovou stránku (nebo pokud udělám v kontroleru vyjímku, nechá mě to přistoupit na /postAcceptor, ovšem data se do něj ze scriptu neodešlou. Tady jsou zdrojáky:

postAcceptor.php

$imageFolder = "img/";

reset ($_FILES);
$temp = current($_FILES);
if (is_uploaded_file($temp['tmp_name'])){

if (preg_match("/([^\w\s\d\-_~,;:\[\]\(\).])|([\.]{2,})/", $temp['name'])) {
header("HTTP/1.0 500 Invalid file name.");
return;
}

// Verify extension
if (!in_array(strtolower(pathinfo($temp['name'], PATHINFO_EXTENSION)), array("gif", "jpg", "png"))) {
header("HTTP/1.0 500 Invalid extension.");
return;
}

$filetowrite = $imageFolder . $temp['name'];
move_uploaded_file($temp['tmp_name'], $filetowrite);

echo json_encode(array('location' => $filetowrite));
} else {
// Notify editor that the upload failed
header("HTTP/1.0 500 Server Error");
}

a tinyMCE js plugin:

tinymce.init({
    selector: "textarea[name=obsah], textarea[name=perex]",
    theme: "modern",
    paste_data_images: true,
    plugins: [
        "advlist autolink lists link image charmap print preview hr anchor pagebreak",
        "searchreplace wordcount visualblocks visualchars code fullscreen",
        "insertdatetime media nonbreaking save table contextmenu directionality",
        "emoticons template paste textcolor colorpicker textpattern"
    ],
    toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
    toolbar2: "print preview media | forecolor backcolor emoticons",
    image_title: true,
    images_upload_url: '/postAcceptor.php',
    file_picker_types: 'image',
    images_upload_base_path: '/img/',
    file_picker_callback: function(cb, value, meta) {
        var input = document.createElement('input');
        input.setAttribute('type', 'file');
        input.setAttribute('accept', 'image/*');
        input.onchange = function() {
            var file = this.files[0];
            var id = 'blobid' + (new Date()).getTime();
            var blobCache = tinymce.activeEditor.editorUpload.blobCache;
            var blobInfo = blobCache.create(id, file);
            blobCache.add(blobInfo);
            cb(blobInfo.blobUri(), { title: file.name });
        };

       input.click();
    }
});

Děkuji za jakékoliv rady a nápady.

 
Nahoru Odpovědět
11.3.2017 14:01
Avatar
Odpovídá na Jan Vacek
Uživatel sítě :11.3.2017 14:11

Hoď ho do ignorace.

RewriteRule ^postAcceptor.php$ - [L]
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
11.3.2017 14:11
Chybami se člověk učí, běžte se učit jinam!
Avatar
Jan Vacek
Člen
Avatar
Odpovídá na Uživatel sítě
Jan Vacek:11.3.2017 15:30

Super! děkuji, vše funguje jak má.

 
Nahoru Odpovědět
11.3.2017 15:30
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.