← Back to team overview

mahara-contributors team mailing list archive

[Bug 1620416] Re: Use of assign_by_ref() is not clear as to what is required

 

When I change the lib/web.php line

 $smarty->assign_by_ref('JAVASCRIPT', $javascript_array);

to

 $smarty->assign('JAVASCRIPT', $javascript_array);

The resulting dataroot/dwoo/compile/.../htdocs/mahara-
testing/mahara/htdocs/theme/raw/templates/header/head.tpl.d17.php looks
to be the same for either option

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1620416

Title:
  Use of assign_by_ref() is not clear as to what is required

Status in Mahara:
  New

Bug description:
  In Mahara we have a bunch of $smarty->assign_by_ref('item',
  $variable);

  It was originally added to smarty/dwoo due to the following

  "The assign_by_ref() original intention in Smarty 2 was to work around
  the object-by-copy behavior of PHP4."

  "The _by_ref methods have been introduced in Smarty2 mainly to be able
  to pass objects to the templates in PHP4. In PHP5 these are passed
  alway as a reference."

  But it doesn't look like we use them in a true reference sort of way

  What I mean is, this example shows referenced vs not referenced
  'title' variable:

  $smarty = smarty();
  $title = 'cats';
  $smarty->assign('title', $title);
  $smarty->assign_by_ref('titleref', $title);
  $title = 'dogs';
  $smarty->display('template.tpl'); 

  In the template it will display 'cat' as title and 'dogs' as titleref
  rather than 'cat'.

  We don't support PHP4 and so should clean up the code and make the
  assign_by_ref() calls simply assign() where appropriate to make the
  code clear as to what we are wanting.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1620416/+subscriptions


References