Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by kixe

  1. Yes, the permission will be created on install only.
  2. @horst Sorry for the very delayed answer. The module (FieldtypeSelectExtOption) is a fieldtype, not an inputfield. The fieldtype supports any Core Inputfieldtypes (Select, Radios, Checkboxes, SelectMultiple or ASMSelect) furthermore some 3d Party Inputfields like InputfieldChosenSelect. Read more about this in the README.md. I don't know if there exists an Inputfield module which extends InputfieldSelect or InputfieldSelectMultiple showing icons or thumbnails to select from. Let me know if you find a solution.
  3. @jploch @horst Tonight a had a look in the module and I made an update to version 1.1.6 I removed any general permission from module. The Backup is triggered now by any user (if a time interval is set). I added trigger option when a user logs in (thanks for the hint @horst). I changed the name for the required permission (trigger on login or logout) from 'db-backup' to 'trigger-db-backup'. Also to prevent permission conflicts with ProcessDatabaseBackupsusing this permission.
  4. A customer wanted to provide own content from other sources in the admin. Videos and other stuff. Nothing special.
  5. Keep same and cross domain iFrames sized to their content with support for window/content resizing, in page links, nesting and multiple iFrames. https://github.com/davidjbradshaw/iframe-resizer
  6. The idea of easy inclusion of any custom Javascript sounds good. The module I made and use is very slim and very stable. I use it extensively, especially with hooks and the full PW API and PHP. The only Javascript I have included currently is iframe resizer.
  7. kixe


    Nothing 🙂 I fixed this. Update to 1.0.9
  8. $new = new Event(5555); $s->add($new); // just prepend $s->sort("myDateTimeFieldOrWhateverSortOption"); foreach ($s as $sortedWireDataObject) { // ... }
  9. You have several options in the backend: 1.) Page based under Page > Settings Enable or disable every non default language. Trying to access an inactive page will result in an 404 2.) Template based under Template > Advanced (bottom) 3.) Field based under Edit Field > Details
  10. it depends! // ADD PAGE // adding a page via API can be triggered by the guest user even if he has not the permission to add children under a specific parent (12464) if ($user->isGuest()) $pages->add('contribution', 12464); // works // VIEW PAGE or FIELD VALUE // if guest user has not the view permission it depends on outputformatting if ($user->isGuest()) var_dump($pages->get(12985)->title); // "I am the Page Title" if ($user->isGuest()) var_dump($pages->get(12985)->of(true)->title); // NULL // MODULES // Call of a Module via API. User has not the permission to use the module if ($user->isGuest()) $modules->get('MyModule')->execute(); // Fatal error: Exception: You do not have permission to execute this module (if debug mode is on/ 500 otherwise) if ($user->isGuest()) $modules->getModule('MyModule', array('noPermissionCheck' => true))->execute(); // works!
  11. Delete cache folder. Error will be gone.
  12. Assuming category is a page field I really don't understand your setup. Do you have multiple categories (pages) with the title: "Cyclonic Vacuums" under different parents? Why? So "Cyclonic Vacuums" is provided selectable in the list multiple times? 3 ways to solve this use unique titles for your categories, even if they are stored under different parents. use a custom label format in the field settings of category. e.g. {parent.title} - {title} use custom selector (screenshot)
  13. https://processwire.com/talk/topic/14888-simple-calendar-module-with-reservation-and-confirmation/?do=findComment&comment=133521 http://www.99lime.com/modules/recurme/ https://fullcalendar.io/
  14. Do you really need it human readable? In this case GET and urlencode() is maybe a safer option. $query = "?keywords=" . urlencode('løts of special chåracters änd'); // "?keywords=l%C3%B8ts+of+special+ch%C3%A5racters+%C3%A4nd" $keywords = urldecode($input->get->keywords); // "løts of special chåracters änd"
  15. Of course a good solution using the database instead of textdomain To translate globally defined strings as described in my post: go to SETUP > LANGUAGES > ITALIAN klick button "Find files to translate" select /site/translations.php start to translate
  16. I do it usually as follows: 1.) Create a file /site/translations.php <?php namespace ProcessWire; /** * TRANSLATABLE STRINGS * Define globally available translatable strings * * USAGE * place this file under /site/translations.php * __("My translatable string", $ferry); * The wire property $ferry refers to the textdomain of this file * */ __("My translatable string"); 2.) Define a wire derived object and place it in /site/ready.php /** * TRANSLATABLE STRINGS * Include translatable strings * @see /site/translations.php * @var $ferry */ $this->wire('ferry', '/site/translations.php', true); output in any template /** * output in template */ echo __("My translatable string", $ferry); Now you need to translate it only once, by using the string in any template. Usecase: strings like "read more" etc. For strings specific to a template you can use simply: /** * output in template */ echo __("My translatable string");
  17. add this hook to your ready.php $this->wire()->addHookBefore('InputfieldCheckbox::render', function($e) { if ($e->object->id != "delete_page") return; if ($this->wire('user')->isSuperuser() == false) $e->object->label = "Hello World"; });
  18. To get the options title in current user language use $type_material->getTitle(); or enable outputformatting $type_material->of(true); $type_material->get('title');
  19. The idea is to generate the page name from field values and not from labels. I will not change this. But I added support for dot syntax for the options fieldtype which should feed your needs. // no fallback to default language if not set. Options should be populated in each language my_options_field.title my_options_field.value my_options_field.id // always fallback to default language. If values are set pagename is pulled from the value, otherwise from title my_options_field
  20. @PWaddict Sorry. I fixed the bug. Please update to 2.1.2
  21. Small wish for this module which I use intensively: Option to define a selector string for newPageParent instead of selecting a fixed page. (alternatively provide option to hook in here I also recommend linking to http://modules.processwire.com/modules/admin-page-field-edit-links/ instead of http://processwire.com in module settings.
  22. It works again with PHP 5.6 @ryan Thanks for providing a quick solution. ProfieldsTable is working as well. But it remains an inconsistence. https://github.com/processwire/processwire-issues/issues/729#issuecomment-433594449
  23. new is a reserved word until PHP 5.6. Its not allowed to use it as a function name. PW 3.0.117 requires PHP 7.0. @ryan I strongly recommend to announce the change of the requirements. (even for the dev branch) https://github.com/processwire/processwire-issues/issues/735
  24. @adrian Hi Adrian, I quickly tried your module and find it very useful. But does it work with repeater fields? I couldn't get it working ... I played a bit around and found another simple solution. config.php /** * array of pages or page trees having multilanguage disabled in the edit screen * */ $config->singleLanguagePages = array(11973 => 0, 12334 => 0); ready.php /** * disable multilanguage in Page Edit for specified pages or page trees * define array of single language pages in $config * where the key is the page id and the value defines if the page acts as a tree parent or only for a single page */ $wire->addHookBefore('ProcessPageEdit::execute', function($e) { $page = $e->object->getPage(); $slps = $this->wire('config')->singleLanguagePages; // exit if doesn't match if (empty($slps)) return; $parentIDs = array_intersect($page->parents()->prepend($page)->each('id'), array_keys($slps)); if (empty($parentIDs)) return; foreach ($parentIDs as $parentID) { if ($page->id == $parentID) break; // page matches itself if ($slps[$parentID]) break; // page is part of a single language tree return; } // page is set as a single language page $page->template->noLang = 1; // we want repeater fields single language as well foreach ($page->fields as $f) { if ($f->type instanceof FieldtypeRepeater == false) continue; $this->wire('templates')->get(FieldtypeRepeater::templateNamePrefix . $f->name)->noLang = 1; } });
  25. Since PW >= 3.0.105 you can easily use the following hook. $wire->addHookBefore('InputfieldSelect::render', function($e) { if ($e->object->name != 'myfield') return; // quick exit if fieldname doesn't match $restrictedIDs = array(); // array of option values to be modified, page IDs in case of pagefield $optionAttributes = array_fill_keys($restrictedIDs, array('disabled' => 'disabled')); $e->object->addOptionAttributes($optionAttributes); }); Related commit: https://github.com/processwire/processwire/commit/07ab8ef9fcefff6a97c688599fb08fb0d462332e#diff-79808b1661a74c0668ee6157537ae478R390
  • Create New...